Как получить аудио из разъема для наушников из буфера, а не из аудиофайла?

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

1 ответ

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

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

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

Чтобы выбрать лучшую категорию, взгляните на: Audio Session Programming Guide - Выбор лучшей категории.

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

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

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

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

Другие вопросы по тегам