Как получить аудио из разъема для наушников из буфера, а не аудиофайла? - PullRequest
1 голос
/ 31 мая 2011

Я работаю над приложением, в котором я хочу отправить необработанные данные (текстовые данные) на разъем для наушников, а не в аудиофайл.Я предполагаю, что могу сделать это, используя AudioQueue framework.Однако я не знаю, как это сделать.Мое приложение должно функционировать так же, как приложение squareup.com.

1 Ответ

1 голос
/ 18 января 2012

Маршрутизация воспроизведения аудио зависит от того, как вы настроили аудио сеанс:

    UInt32 category = kAudioSessionCategory_PlayAndRecord;  
    error = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category);

У вас есть пять категорий на выбор. Как только вы выбрали категорию, iOS автоматически направит аудиосигнал в зависимости от оборудования. Например, вы можете подключить наушники, и он остановит воспроизведение динамика, вместо этого направив сигнал на выход наушников.

Чтобы выбрать лучшую категорию, взгляните на: Руководство по программированию аудиосеанса - Выбор лучшей категории .

Относительно AudioQueue, да, это будет воспроизводить необработанные аудиоданные в байтовом формате. Вы запускаете очередь, и она будет периодически запрашивать дополнительные данные. Взгляните на пример проекта SpeakHere . В частности, посмотрите на AQBufferCallback в AQPlayer.mm.

Чтобы получить аудиоданные из буфера, а не из файла, что я и имею в виду, взгляните на мои ответы на другие вопросы, касающиеся примера проекта SpeakHere:

Запись в реальном времени AudioQueue Record-Playback

Как предоставить аудио буфер для AudioQueue для воспроизведения аудио?

...