我们正在开发一个VOIP应用程序,当有正在进行的通话时,我们希望不允许其他应用播放音乐或其他东西(如Whatsapp那样)。
有没有办法以正常的方式做到这一点,你能帮忙吗?
编辑1:
我认为我们需要先从监听观察者 AVAudioSessionInterruptionNotification 开始。
接受的答案编辑2:
当声音中断开始时,尝试仅再次激活 AudioSession 。这有效。谢谢 KudoCC 。
答案 0 :(得分:1)
这是一个关于audio category的链接,其中有一个表格:
由于您的应用支持VoIP,因此需要播放和录制音频,并且您需要中断不可混合的应用音频,因此AVAudioSessionCategoryPlayAndRecord
是正确的类别。此外,您还应该在播放/录制音频时重新激活音频会话,以使该类别生效。
答案 1 :(得分:0)
在您的应用中尝试使用此代码,以便在通话时暂停背景音频,
[[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&error];
当其他应用使用AVAudioPlayer时,它会很有用。
有关详细信息,请参阅this Link