我正在用AVPlayerLayer播放一个视频。录像没有声音。但是,如果用户在后台播放音乐并显示AVPlayerLayer,则音乐停止。如果用户向上滑动并点击播放,视频就会停止。
我甚至将AVPlayer的AVPlayer属性设置为true,但这种情况仍然存在。
如何防止AVPlayerLayer干扰用户可能播放的任何音乐?
发布于 2015-12-25 13:37:20
视频解码似乎中断音频应用程序,反之亦然(我认为它甚至可以打断自己)。您可以通过在音频会话中配置“与他人混合”来禁用此行为:
NSError *error;
if (![[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&error]) {
// handle error
}
if (![[AVAudioSession sharedInstance] setActive:YES error:&error]) {
// handle error
}我不知道为什么,但是设置一个简单的没有选项的AVAudioSessionCategoryAmbient类别也是有效的:
if (![[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&error]) {
// handle error
}对于为什么mix-with-others对于这种用例来说是必要的,甚至是显而易见的,我曾经有过复杂的理论,但是我已经忘记了它们,我更喜欢指向某些文档的指针。
附注:我非常肯定以上两种解决方案都将禁用您的应用程序的远程控制事件。希望这样可以。再一次,我会喜欢一些纪录片。
https://stackoverflow.com/questions/34447792
复制相似问题