不允许其他应用播放音乐
Do not allow other apps play music
我们正在开发一个 VOIP 应用程序,当有通话时,我们不想让其他应用程序播放音乐或其他东西(就像 Whatsapp 那样)。
有什么正常的方法可以做到吗,你能帮忙吗?
编辑 1:
我认为我们需要从监听观察者开始 AVAudioSessionInterruptionNotification.
接受的答案编辑 2:
当声音中断开始时,再次尝试仅激活 AudioSession。这行得通。谢谢KudoCC.
在您的应用中尝试此代码以在通话时暂停背景音频,
[[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&error];
当其他应用程序使用 AVAudioPlayer 时很有帮助。
有关详细信息,请参阅 this Link
这里有个link讲audio category,里面有个table:
由于您的应用支持 VoIP,因此需要播放和录制音频,并且您需要中断不可混合应用的音频,因此 AVAudioSessionCategoryPlayAndRecord
是正确的类别。此外,您应该在 playing/recording 音频时重新激活音频会话,以便类别生效。
我们正在开发一个 VOIP 应用程序,当有通话时,我们不想让其他应用程序播放音乐或其他东西(就像 Whatsapp 那样)。
有什么正常的方法可以做到吗,你能帮忙吗?
编辑 1:
我认为我们需要从监听观察者开始 AVAudioSessionInterruptionNotification.
接受的答案编辑 2:
当声音中断开始时,再次尝试仅激活 AudioSession。这行得通。谢谢KudoCC.
在您的应用中尝试此代码以在通话时暂停背景音频,
[[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&error];
当其他应用程序使用 AVAudioPlayer 时很有帮助。
有关详细信息,请参阅 this Link
这里有个link讲audio category,里面有个table:
由于您的应用支持 VoIP,因此需要播放和录制音频,并且您需要中断不可混合应用的音频,因此 AVAudioSessionCategoryPlayAndRecord
是正确的类别。此外,您应该在 playing/recording 音频时重新激活音频会话,以便类别生效。