У меня проблема с управлением прерываниями аудиосессии (установленной как категория «Воспроизведение и запись») в моем приложении VoIP в iOS 5.x. Когда у меня выполняется вызов, идет фоновый режим и запускается приложение youtube, происходит прерывание аудиосессии, и я могу поставить текущий вызов на паузу.
Проблема в том, что когда я возвращаюсь на передний план и хочу отреагировать на свой вызов (БЕЗ уничтожения приложения YouTube, просто поместив его в фоновый режим): обратный вызов прерывания не происходит, и даже если я заставляю активировать мой предыдущий audioSession, он возвращает ошибку.
Я проверяю, могут ли аудиоресурсы использоваться другим процессом (с помощью AudioSessionGetProperty (kAudioSessionProperty_OtherAudioIsPlaying, ...), но они этого не делают. Если я вручную убью приложение YouTube, вместо этого произойдет прерывание, и проблем нет.
Поскольку обычно никто не убивает приложение вручную, как я могу восстановить audioSession моего звонка? Я проверил другие примеры, и Viber работает правильно и может каким-то образом «перехватить» прерывание в конце.
Еще одно странное поведение заключается в том, что если я также установил категорию «allowMixing» в моем AudioSession, она полностью игнорируется в iOS 5.x (youtube берет на себя управление аудиоресурсами), тогда как в iOS 4.x он работает так, как должен (то есть я слушаю в современном звуке звонка и YouTube смешаны).