检测 AvPlayer 停止播放

7
我正在使用AVPlayer类来读取媒体流。我需要监控播放过程。
我的问题是:是否能够检测用户停止播放?
我查看了MPMoviePlayerController。如果用户停止视频播放,该控制器会发送一个通知:MPMovieFinishReasonUserExited。是否有类似的功能?

请参考此链接:https://dev59.com/yWw15IYBdhLWcg3wFHzf。希望能对您有所帮助。 - Bista
我尝试过了,但是播放器从未触发“AVPlayerItemDidPlayToEndTimeNotification”通知。 - tcacciatore
可能是如何检测AVPlayer视频播放结束?的重复问题。 - Rachit Rawat
2个回答

5

这是@Thlbaut答案的Swift 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")
            }
        }
    }
}

5
您可以通过在播放器上添加键 rate 的观察者来监视 rate 属性。

值为 0.0 表示暂停视频播放,而值为 1.0 表示以当前项目的自然速率播放。

请参阅Apple文档此主题
希望这有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接