不允许其他应用播放音乐

时间:2016-12-26 06:41:02

标签: ios objective-c avaudiosession

我们正在开发一个VOIP应用程序,当有正在进行的通话时,我们希望不允许其他应用播放音乐或其他东西(如Whatsapp那样)。
有没有办法以正常的方式做到这一点,你能帮忙吗?

编辑1:
我认为我们需要先从监听观察者 AVAudioSessionInterruptionNotification 开始。


接受的答案编辑2:
当声音中断开始时,尝试仅再次激活 AudioSession 。这有效。谢谢 KudoCC

2 个答案:

答案 0 :(得分:1)

这是一个关于audio category的链接,其中有一个表格: enter image description here

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

答案 1 :(得分:0)

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

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

当其他应用使用AVAudioPlayer时,它会很有用。

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