Воспроизведение .wav данных любого формата в программе Mac C ++, аналогичной Win32 PlaySound - PullRequest
2 голосов
/ 10 августа 2009

У меня есть файлы .wav, которые были сохранены в центральной базе данных. Мне нужно играть в них в коде Mac C ++. Файлы .wav имеют много разных форматов - некоторые из них довольно старые - например, 4bit.

Я получил код с использованием интерфейсов AudioHardware для работы с основными форматами. Но они работают, только если частота дискретизации в .wav принята аудиоустройством.

Мне нужно что-то похожее на win32 PlaySound, где я просто даю ему буфер, содержащий файл .wav, и он выполняет необходимые преобразования.

Мне нужно, чтобы воспроизведение происходило синхронно или асинхронно.

Я заблудился, пытаясь читать документы для разработчиков на Apple - там очень много разных уровней, и обзоры действительно плохие! Должен ли я смотреть на аудио-очередь? Аудио файл? QuickTime?

Заранее спасибо за любые указатели!

1 Ответ

2 голосов
/ 11 августа 2009

Если вы разрабатываете в 10.5, то AudioQueues - это API, который вы хотите. Они не так просты, как одна функция, но они предоставляют достаточно всеобъемлющий API высокого уровня для воспроизведения всех видов звуковых файлов.

Руководство по программированию Audio Queue содержит подробный пример его использования для воспроизведения и охватывает функции и структуры, которые вам нужно будет предоставить.

Я не могу ручаться за качество этого образца , но он показывает простую обертку Obj-C для воспроизведения фоновой музыки, которой должно быть достаточно, чтобы пройти через стену документации.

Удачи!

...