2016-06-29 6 views
0

Когда мое приложение отправлено на задний план, красная строка состояния кратковременно мигает. Я могу жить с этим. Проблема в том, что если пользователь затем изменяет маршрут (например, подключает или отключает наушники), красная строка состояния включается и остается включенной (пока приложение не будет убито или не будет окружено).AVAudioSession красная строка состояния с изменением маршрута

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

ответ

0

Похоже, что смена категории недостаточна - если сеанс был создан с использованием inputEnabled true, тогда вы застряли с предупреждениями о состоянии. Вы должны будете полностью освободить сеанс. See this question для обсуждения с окончательным ответом «... единственный способ - фактически освободить audioController».

+0

Я видел этот ответ, но он основан на Amazing Audio Engine, и я не видел, как его применять здесь. AVAudioSession - синглтон, afaik не имеет смысла выпускать его. –

+1

Взгляните на [AEAudioController.m] (https://github.com/TheAmazingAudioEngine/TheAmazingAudioEngine/blob/master/TheAmazingAudioEngine/AEAudioController.m) и посмотрите, что из этого делает в 'dealloc' применимо к вашему собственному коду. –

+0

Хорошая идея, но я не нашел там ничего полезного. Это все срывание собственных структур данных. –

Смежные вопросы