检测 AvPlayer 何时停止
Detect when AvPlayer is stopped
我正在使用 AVPlayer class 来读取流。
我要监听回放。
这是我的问题:是否可以检测到播放器何时被用户停止?
我查看了 MPMoviePlayerController。如果用户停止播放视频,此控制器会发送通知:MPMovieFinishReasonUserExited。有没有等价物?
您可以通过在播放器上为键 rate
添加观察者来监视 rate
属性。
A value of 0.0
means pauses the video, while a value of 1.0
play at the natural rate of the current item.
Apple documentation and this topic.
希望这对您有所帮助。
这是@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")
}
}
}
}
我正在使用 AVPlayer class 来读取流。 我要监听回放。
这是我的问题:是否可以检测到播放器何时被用户停止?
我查看了 MPMoviePlayerController。如果用户停止播放视频,此控制器会发送通知:MPMovieFinishReasonUserExited。有没有等价物?
您可以通过在播放器上为键 rate
添加观察者来监视 rate
属性。
A value of
0.0
means pauses the video, while a value of1.0
play at the natural rate of the current item.
Apple documentation and this topic.
希望这对您有所帮助。
这是@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")
}
}
}
}