Мы разрабатываем приложение VOIP, и при активном вызове мы не хотим, чтобы другие приложения воспроизводили музыку или что-то в этом роде (например, Whatsapp).
Есть ли способ сделать это обычным способом, не могли бы вы помочь?Не разрешайте другим приложениям воспроизводить музыку
Edit 1:
Я думаю, что мы должны начать с прослушивания наблюдатель AVAudioSessionInterruptionNotification.
Принято Ответ Edit 2:
Когда начинается звук прерывания, попытайтесь только активнее AudioSession снова. Это работает. Спасибо KudoCC.
«Активный вызов» означает системный телефонный звонок? Или вызов VOIP вашего приложения? Почему, по-вашему, наблюдение за «AVAudioSessionInterruptionNotification» будет работать? – KudoCC
Это вызов VOIP (также сообщение в систему с функцией CallKit, iOS 10). Если мы заметим это уведомление, мы снова можем сделать AudioSession активным и тем самым управлять аудиовыходом телефона. Но я попробовал, и это не сработает. – ondermerol
Использует ли ваше приложение категорию «AVAudioSessionCategoryPlayAndRecord»? Вы можете попытаться повторно активировать свою аудио сессию, когда будете играть/записывать аудио, если вы успешно активировали сеанс аудио, другое приложение перестанет воспроизводиться. – KudoCC