检测AvPlayer何时停止

时间:2015-03-18 09:41:43

标签: ios avplayer

我使用AVPlayer类来读取流。 我必须监控播放。

这是我的问题:是否可以检测用户何时停止播放器?

我看了MPMoviePlayerController。如果用户停止了视频,则此控制器会发送通知:MPMovieFinishReasonUserExited。有没有等价的?

2 个答案:

答案 0 :(得分:5)

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

  

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

Apple documentationthis 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")
            }
        }
    }
}