问题描述:
在项目中使用AVPlayer播放本地视频时,会中断其他APP音频的正常播放,我们的需求是当用户选择静音时,不会打断其他音频播放
解决方案:
在设置 AVPlayer 播放视频时,设置一下音频的播放环境就可以了
//播放当前音频时,不阻断其他音频播放
var session:AVAudioSession = AVAudioSession.sharedInstance()
do {
try session.setCategory(AVAudioSession.Category.ambient)
} catch let err{
print("设置类型失败:\(err.localizedDescription)")
}
// app的声音可与其它app共存,但锁屏和静音模式会被静音,除非当前app是唯一播放的app
AVAudioSessionCategoryAmbient
// 会停止其他程序的音频播放。当设备被设置为静音模式,音频会随之静音
AVAudioSessionCategorySoloAmbient
// 仅用来录音,无法播放音频
AVAudioSessionCategoryRecord
// 会停止其它音频播放,并且能在后台播放,锁屏和静音模式都能播放声音
AVAudioSessionCategoryPlayback
// 能播也能录,播放默认声音是从听筒出来
AVAudioSessionCategoryPlayAndRecord