不允许其他应用播放音乐

Do not allow other apps play music

我们正在开发一个 VOIP 应用程序,当有通话时,我们不想让其他应用程序播放音乐或其他东西(就像 Whatsapp 那样)。
有什么正常的方法可以做到吗,你能帮忙吗?

编辑 1:
我认为我们需要从监听观察者开始 A​​VAudioSessionInterruptionNotification.


接受的答案编辑 2:
当声音中断开始时,再次尝试仅激活 A​​udioSession。这行得通。谢谢KudoCC.

在您的应用中尝试此代码以在通话时暂停背景音频,

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

当其他应用程序使用 AVAudioPlayer 时很有帮助。

有关详细信息,请参阅 this Link

这里有个link讲audio category,里面有个table:

由于您的应用支持 VoIP,因此需要播放和录制音频,并且您需要中断不可混合应用的音频,因此 AVAudioSessionCategoryPlayAndRecord 是正确的类别。此外,您应该在 playing/recording 音频时重新激活音频会话,以便类别生效。