Я пытаюсь реализовать наблюдателя для AVPlayer
в чистом Swift.
Я получаю сообщение об ошибке: "сообщение получено, но не обработано". Это потому, что аргумент объекта в конструкторе наблюдателя, который я использую, это nil
?
Я разместил свой пример кода ниже:
player.addObserver(self, forKeyPath: "status", options:NSKeyValueObservingOptions(), context: nil)
player.addObserver(self, forKeyPath: "playbackBufferEmpty", options:NSKeyValueObservingOptions(), context: nil)
player.addObserver(self, forKeyPath: "playbackLikelyToKeepUp", options:NSKeyValueObservingOptions(), context: nil)
player.addObserver(self, forKeyPath: "loadedTimeRanges", options: NSKeyValueObservingOptions(), context: nil)
private func deallocObservers(player: AVPlayer) {
player.removeObserver(self, forKeyPath: "status")
player.removeObserver(self, forKeyPath: "playbackBufferEmpty")
player.removeObserver(self, forKeyPath: "playbackLikelyToKeepUp")
}
//observer for av play
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == "status" {
print("Change at keyPath = \(keyPath) for \(object)")
}
if keyPath == "playbackBufferEmpty" {
print("playbackBufferEmpty - Change at keyPath = \(keyPath) for \(object)")
}
if keyPath == "playbackLikelyToKeepUp" {
print("Change at keyPath = \(keyPath) for \(object)")
}
}