可以使用AVPlayerViewController的KVO属性来捕捉Transport bar live label的更改。以下是一个示例代码片段:
let playerViewController = AVPlayerViewController()
playerViewController.addObserver(self, forKeyPath: "player.currentItem.loadedTimeRanges", options: .new, context: nil)
playerViewController.addObserver(self, forKeyPath: "player.currentItem.seekableTimeRanges", options: .new, context: nil)
playerViewController.addObserver(self, forKeyPath: "player.currentItem.playbackLikelyToKeepUp", options: .new, context: nil)
playerViewController.addObserver(self, forKeyPath: "player.currentItem.playbackBufferFull", options: .new, context: nil)
playerViewController.addObserver(self, forKeyPath: "player.currentItem.playbackBufferEmpty", options: .new, context: nil)
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == "player.currentItem.playbackBufferEmpty" {
print("Transport bar live label has been updated")
}
}
这个方法将向AVPlayerViewController添加一个观察者,以便在Transport bar live label更改时接收通知。可以将其与其他观察者属性结合使用,以获得有关媒体播放进度的更多信息。