Пример кода для захвата аудио с Mac в Какао и сохранения в файл? - PullRequest
19 голосов
/ 16 мая 2009

Я работаю над небольшим приложением, которое захватывает звук из аудио-очереди Mac и должно сохранить его на диск в каком-нибудь приемлемом аудиоформате.

Есть ли у кого-нибудь приличный пример кода (Какао / Objective-C), которым он может поделиться?

Мне специально нужно захватить звук, который передается на встроенное устройство вывода, чтобы записать его. Есть идеи? Ответы до сих пор были полезны, но не помогли мне понять, как могут быть получены данные, поступающие на вывод, независимо от источника ввода.

Ответы [ 2 ]

10 голосов
/ 16 мая 2009

Работа со звуком в Mac OS X предполагает взаимодействие с Core Audio. Для быстрого обзора взгляните на Core Audio Overview .

Вам нужно будет взаимодействовать с AUHAL для выполнения ввода и вывода; Техническое примечание существует с подробным описанием шагов, необходимых для этого. Этот код обычно пишется на C ++, поскольку это процедура, описанная в демонстрационной версии SimplePlayThru .

Это не охватывает фактические шаги, необходимые для захвата этого аудиовхода. Однако эти ссылки должны предоставить вам достаточно примера кода, чтобы начать взаимодействие с вашим устройством ввода. Я опубликую больше ссылок в этом ответе, если я на них наткнусь.


Взгляните на /Developer/Example/CoreAudio/Services/AudioFileTools. В частности, посмотрите на afrecord.cpp. По общему признанию, это не Какао само по себе ; Само какао, похоже, не имеет каких-либо особых возможностей для записи. Если вы хотите взаимодействовать с файлом C ++ там, вам, вероятно, потребуется написать Objective C ++, как в SimplePlayThru.

3 голосов
/ 17 мая 2009

Хороший пример кода на сайте Улли Кустерерса
У Кокоадева также есть статья на эту тему. Исходный код внизу страницы использует API-интерфейс QuickTimes Sequence Grabber. Я бы пошел с Core Audio.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...