防止AVPlayer取消背景音频
问题描述:
在我的应用程序中,我使用AVPlayer播放简单的视频。这些视频没有任何音轨。问题是,当我播放它们时,所有背景音乐(不是来自我的应用程序)都停止播放。我如何防止这种情况?防止AVPlayer取消背景音频
有没有办法用AVPlayer播放视频而不取消背景音乐?
我的代码是:
let urlAsset = AVURLAsset(URL: urlLocal, options: nil)
let item = AVPlayerItem(asset: urlAsset)
self.videoPlayer = AVPlayer(playerItem: item)
if let player = self.videoPlayer {
self.videoLayer = AVPlayerLayer(player: player)
if let layer = self.videoLayer {
layer.frame = self.view.bounds
self.view.layer.addSublayer(layer)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "videoPlayerDidReachEnd:", name: AVPlayerItemDidPlayToEndTimeNotification , object: nil)
player.actionAtItemEnd = AVPlayerActionAtItemEnd.None
player.play()
}
}
谢谢!
答
您需要设置选项音频会话到您的会话与他人混用:
NSError *error;
if (![[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&error])
{
NSLog(@"audio session error: %@", error);
}
答
我能够与GeneratorOfOne的评论来解决这个问题。我唯一需要的是运行player.play之前运行这些2行代码...
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient, error: &error)
AVAudioSession.sharedInstance().setActive(true, error: &error)
答
雨燕3一些错误处理:
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
} catch let error as NSError {
print(error)
}
do {
try AVAudioSession.sharedInstance().setActive(true)
} catch let error as NSError {
print(error)
}
你尝试AVAudioSessionCategoryOptions? – Sandeep
立即尝试,谢谢! –