我使用AVPlayer类来读取流。 我必须监控播放。
这是我的问题:是否可以检测用户何时停止播放器?
我看了MPMoviePlayerController。如果用户停止了视频,则此控制器会发送通知:MPMovieFinishReasonUserExited。有没有等价的?
答案 0 :(得分:5)
您可以通过在关键字rate
的播放器上添加观察者来监控rate
属性。
值
0.0
表示暂停视频,而值1.0
则以当前项的自然速率播放。
Apple documentation和this topic。
希望这有帮助。
答案 1 :(得分:1)
这里是@Thlbaut回答的快捷3代码
self.avPlayer?.addObserver(self, forKeyPath: "rate", options: NSKeyValueObservingOptions(rawValue: 0), context: nil)
然后
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == "rate" {
if let playRate = self.avPlayer?.rate {
if playRate == 0.0 {
print("playback paused")
} else {
print("playback started")
}
}
}
}