我正在尝试快速向我的 AVPlayer 添加一个观察者,允许在视频开始播放时读取以控制我的播放器上的其他功能。当我运行以下代码时:
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)
}
}
我的应用程序崩溃,控制台中没有任何解释。我发现导致它的代码行是:
player?.addObserver(self, forKeyPath: "currentItem.loadedTimeRanges", options: .new, context: nil)
但我不确定它为什么会崩溃。关于可能导致这种情况的任何想法?