目前iOS支持的两个app的音频互斥播放 主要有以下两种情况:
1.打断其他音乐app的播放,并抢占媒体控制中心
优点:如果A正在播放 这时候B开始启动播放,B会打断A的播放 并抢占手机的媒体控制中心,可以在锁屏状态下控制B的上一首、下一首、暂停等功能
缺点:如果A正在播放 这时候B开始启动播放,B打断A的播放后 当B暂停播放或者停止播放后 不能重新恢复A的播放
例子:QQ音乐 网易云 是通过这种方式来播放的
2.只打断其他音乐的播放,不抢占媒体控制中心
优点:如果A正在播放 这时候B开始启动播放,B打断A的播放后 当B暂停播放或者停止播放后 ,能重新恢复A的播放
缺点:如果A正在播放 这时候B开始启动播放,B会打断A的播放 但不会抢占手机的媒体控制中心,这时候媒体控制中心还是显示A的,无法在媒体控制中心控制B的上一首、下一首、暂停等功能
例子:高德地图 咪咕灵犀 微信等
抢占app媒体控制中心有以下 两种方式
1.通过 [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]
2.或者直接添加控制中心监听事件 [MPRemoteCommandCenter sharedCommandCenter].playCommand addTargetWithHandler ~
如果采用第二种方式打断了其他app的音频播放 可以采用以下方式进行恢复其他app的播放
if (self.audioSession.isOtherAudioPlaying ) {
[self.audioSession setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil];
}