2016-12-26 3 views
1

Мы разрабатываем приложение VOIP, и при активном вызове мы не хотим, чтобы другие приложения воспроизводили музыку или что-то в этом роде (например, Whatsapp).
Есть ли способ сделать это обычным способом, не могли бы вы помочь?Не разрешайте другим приложениям воспроизводить музыку

Edit 1:
Я думаю, что мы должны начать с прослушивания наблюдатель AVAudioSessionInterruptionNotification.


Принято Ответ Edit 2:
Когда начинается звук прерывания, попытайтесь только активнее AudioSession снова. Это работает. Спасибо KudoCC.

+0

«Активный вызов» означает системный телефонный звонок? Или вызов VOIP вашего приложения? Почему, по-вашему, наблюдение за «AVAudioSessionInterruptionNotification» будет работать? – KudoCC

+0

Это вызов VOIP (также сообщение в систему с функцией CallKit, iOS 10). Если мы заметим это уведомление, мы снова можем сделать AudioSession активным и тем самым управлять аудиовыходом телефона. Но я попробовал, и это не сработает. – ondermerol

+0

Использует ли ваше приложение категорию «AVAudioSessionCategoryPlayAndRecord»? Вы можете попытаться повторно активировать свою аудио сессию, когда будете играть/записывать аудио, если вы успешно активировали сеанс аудио, другое приложение перестанет воспроизводиться. – KudoCC

ответ

1

Вот ссылка говорит о audio category, есть таблица в ней: enter image description here

Как ваше приложение поддерживает VoIP, так что необходимо для воспроизведения и записи звука, а также вам нужно прерывать несмешиваемые приложения аудио, поэтому AVAudioSessionCategoryPlayAndRecord - это правильная категория. Также вы должны повторно активировать свой сеанс аудио, когда будете воспроизводить/записывать аудио, чтобы эта категория вступила в силу.

+0

Спасибо, снова активирует AudioSession, когда начинается перерыв. – ondermerol

0

Попробуйте этот код в приложении, чтобы приостановить фоновый звук, когда вызовы,

[[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&error]; 

Это полезно, когда другие приложения используют AVAudioPlayer.

Более подробно см this Link

+0

Благодарим вас за помощь, но ваш совет касается возобновления других приложений, которые не связаны с моей проблемой. – ondermerol