iPhone восстанавливает AudioSession в Play & Record после воспроизведения видео на YouTube

У меня проблема с управлением прерываниями аудиосессии (установленной как категория «Воспроизведение и запись») в моем приложении VoIP в iOS 5.x. Когда у меня выполняется вызов, идет фоновый режим и запускается приложение youtube, происходит прерывание аудиосессии, и я могу поставить текущий вызов на паузу.

Проблема в том, что когда я возвращаюсь на передний план и хочу отреагировать на свой вызов (БЕЗ уничтожения приложения YouTube, просто поместив его в фоновый режим): обратный вызов прерывания не происходит, и даже если я заставляю активировать мой предыдущий audioSession, он возвращает ошибку.
Я проверяю, могут ли аудиоресурсы использоваться другим процессом (с помощью AudioSessionGetProperty (kAudioSessionProperty_OtherAudioIsPlaying, ...), но они этого не делают. Если я вручную убью приложение YouTube, вместо этого произойдет прерывание, и проблем нет.

Поскольку обычно никто не убивает приложение вручную, как я могу восстановить audioSession моего звонка? Я проверил другие примеры, и Viber работает правильно и может каким-то образом «перехватить» прерывание в конце.

Еще одно странное поведение заключается в том, что если я также установил категорию «allowMixing» в моем AudioSession, она полностью игнорируется в iOS 5.x (youtube берет на себя управление аудиоресурсами), тогда как в iOS 4.x он работает так, как должен (то есть я слушаю в современном звуке звонка и YouTube смешаны).


person user1514303    schedule 10.07.2012    source источник


Ответы (1)


У меня была аналогичная проблема. Я решил это, остановив и (повторно) запустив свой аудиоустройство в обратном вызове прерывания.

person JTea    schedule 31.08.2012
comment
Проблема в том, что (конечного) прерывания НЕ происходит. Итак, как я могу узнать подходящий момент для перезапуска аудиосистемы? - person user1514303; 12.02.2013