iOS — настройка аудиосессии для приложения AudioUnit

#ios #ios5 #core-audio #audio-streaming #audiounit

#iOS #ios5 #ядро-аудио #потоковое аудио #audiounit

Вопрос:

Я работаю над приложением потокового аудиоплеера для iOS. в настоящее время я экспериментирую с AudioQueue и AudioUnit для воспроизведения.

Оба варианта отлично работают в обычном состоянии. Но я сталкиваюсь с проблемой с версией приложения AudioUnit, когда оно переходит в спящий режим.

Версия приложения с AudioUnit останавливала воспроизведение, когда приложение переходило в спящий режим. Где как AudioQueue версия приложения воспроизводится без каких-либо проблем во время спящего режима.

Я установил категорию сеанса «kAudioSessionCategory_MediaPlayback» для обоих случаев. Я предполагаю, что эта категория сеансов должна продолжать воспроизведение даже в спящем режиме.

Я не уверен, чего мне здесь не хватает.

Я хочу добавить функции панорамирования / эффектов в свое приложение, поэтому я пытаюсь использовать AudioUnit.

Любая помощь высоко ценится.

Ответ №1:

Наконец-то у меня заработала реализация AudioUnit. Я установил категорию аудиосессий как «kAudioSessionCategory_MediaPlayback». Поскольку я использую AudioUnit для воспроизведения, мне нужно установить для свойства «kAudioUnitProperty_MaximumFramesPerSlice» значение 4096. таким образом, он продолжит воспроизведение, даже если устройство находится в спящем режиме.

Ответ №2:

Согласно документации Apple по аудиосессиям, вам, вероятно, следует использовать kAudioSessionCategory_SoloAmbientSound вместо этого. Это остановит все звуки из других приложений, но это цена, которую вы платите за возможность продолжать воспроизведение, когда устройство заблокировано.

Комментарии:

1. Позвольте мне попробовать с вашим предложением. но когда я использую «kAudioSessionCategory_MediaPlayback» с AudioQueue, он работал нормально, даже когда устройство находится в режиме ожидания. но он перестал воспроизводиться, когда я использую его с AudioUnit.