Je cherche à ajouter un observateur à mon AVPlayer en swift qui permet de lire lorsque la vidéo commence à jouer pour contrôler d'autres fonctions sur mon lecteur. Lorsque j'exécute le code suivant :
func setUpPlayer() {
if let url = URL(string: urlString) {
player = AVPlayer(url: url)
let playerLayer = AVPlayerLayer(player: player)
self.layer.addSublayer(playerLayer)
playerLayer.frame = self.frame
player?.play()
player?.addObserver(self, forKeyPath: "currentItem.loadedTimeRanges", options: .new, context: nil)
}
}
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == "currentItem.loadedTimeRanges" {
print(change)
}
}
Mon application plante sans explication dans la console. J'ai trouvé la ligne de code qui en est la cause :
player?.addObserver(self, forKeyPath: "currentItem.loadedTimeRanges", options: .new, context: nil)
Mais je ne suis pas sûr de la raison de ce plantage. Des idées sur ce qui pourrait en être la cause ?