I'm trying to keep the video in AVPlayer playing when app goes from background to foreground, but it shown blank. I use Swift. I've found a lot of examples, but nothing works.
configurePlayer function is I've create for that but I don't know what's the problem
func configurePlayer(_ url: URL?){
guard let url = url else { return }
let asset = AVURLAsset(url: url)
let playerItem = AVPlayerItem(asset: asset)
playerItem.preferredForwardBufferDuration = 1
queuePlayer = AVQueuePlayer(playerItem: playerItem)
queuePlayer?.replaceCurrentItem(with: playerItem)
self.observer = playerItem.observe(.status, options: [.initial, .new], changeHandler: { item, _ in
let status = item.status
// Switch over the status
switch status {
case .readyToPlay:
// Player item is ready to play.
print("Status: readyToPlay")
case .failed:
// Player item failed. See error.
self.pause()
print("Status: failed Error: " + item.error!.localizedDescription )
case .unknown:
// Player item is not yet ready.bn m
print("Status: unknown")
@unknown default:
fatalError("Status is not yet ready to present")
}
})
if self.queuePlayer?.currentItem != nil {
print("State: Add playerLooper")
self.playerLooper = AVPlayerLooper(player: self.queuePlayer!, templateItem: self.queuePlayer!.currentItem!)
}
avPlayerLayer = AVPlayerLayer(player: queuePlayer)
avPlayerLayer.videoGravity = .resizeAspect
self.layer.addSublayer(self.avPlayerLayer)
self.avPlayerLayer.player = self.queuePlayer
}
Above is my code