In my app I use AVPlayer to play simple videos. These videos do not have any audio track. The problem is that when I play them, all background music (not from my app) is stopped. How do I prevent this?
Is there a way to play videos with AVPlayer and not cancel background music?
My code is:
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()
}
}
Thanks!
Swift 3 with some error handling:
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)
}
You need to set option for audio session to mix your session with others:
NSError *error;
if (![[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&error])
{
NSLog(@"audio session error: %@", error);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With