Skip to content

Instantly share code, notes, and snippets.

@h4yder
Created September 3, 2020 14:01
Show Gist options
  • Save h4yder/f32be0a4ce7e4d9161b6b4c95e219e40 to your computer and use it in GitHub Desktop.
Save h4yder/f32be0a4ce7e4d9161b6b4c95e219e40 to your computer and use it in GitHub Desktop.
private func setupBackgroundVideoIfNeeded() {
guard playerLayer == nil, let url = url else {
return
}
let player = AVPlayer(url: url)
if let playerItem = player.currentItem {
NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: playerItem, queue: nil) { [weak self] notification in
let currentItem = notification.object as? AVPlayerItem
currentItem?.seek(to: .zero, completionHandler: nil)
if let player = self?.playerLayer?.player,
player.currentItem == currentItem {
player.play()
}
}
}
let playerLayer = AVPlayerLayer(player: player)
playerLayer.videoGravity = .resizeAspectFill
layer.addSublayer(playerLayer)
playerLayer.frame = CGRect(x: 0.0, y: 0.0,
width: frame.size.width,
height: frame.size.height)
self.playerLayer = playerLayer
player.volume = 0
player.play()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment