2015-01-09 2 views
1

Я создаю приложение VoIP для iOS, и я использую категорию AVAudioSessionAVAudioSessionCategoryPlayAndRecord, которая рекомендуется для приложений VoIP, которые необходимо постоянно воспроизводить и записывать аудио.Как я могу запретить моему приложению iOS VoIP воспроизводить аудио, когда пользователь переключает свой телефон на тихий?

Однако, когда пользователь переключает свой iPhone-звон в бесшумный режим, приложение VoIP по-прежнему будет воспроизводить звук для входящего вызова. Это нежелательное поведение.

Есть ли способ предотвратить входящие звонки от воспроизведения звука, когда пользователь имеет свой телефон в режиме молчания, но все же позволяет им отвечать на звонок и возобновлять аудио?

ответ

0

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

Я могу решить эту проблему, используя локальные уведомления и перемещая звук из приложения и добавляя его к самому уведомлению. Указав звуковой файл как часть уведомления, iOS будет обрабатывать, должен ли он воспроизводить звук или вибрировать телефон. Это определяется положением переключателя Ring/Silent на боковой стороне телефона.

Here's an Apple article on adding a sound to a local notification.

0

Если вы посмотрите здесь, в документации для AVAudioSession Categories, вы можете увидеть, что AVAudioSessionCategoryPlayAndRecord, к сожалению, не повинуются молчание телефона, как показано ниже:

Your audio continues with the Silent switch set to silent and with the screen locked. (The switch is called the Ring/Silent switch on iPhone.) 

Если вы хотите аудио остановиться, когда вы поворачиваете телефон до молчания, вы должны использовать AVAudioSessionCategoryAmbient.

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