AVPlayer 覆盖视频控件

AVPlayer override video controls

我需要在按下控制按钮(在视频上)时得到通知。例如,如果我点击 "pause" 或 "full scren" 按钮,我需要实现一些逻辑。我可以覆盖 AVPlayerViewController 的方法吗?我找到了 AVPlayerViewControllerDelegate 但我找不到任何方法来覆盖。

我也试过给 AVPlayer 添加观察者

player.addObserver(self, forKeyPath: "status", options:NSKeyValueObservingOptions(), context: nil)

我用过:

override func observeValueForKeyPath(keyPath: String,
ofObject object: AnyObject, change: [String : AnyObject],
context: UnsafeMutablePointer<Void>) {
...
}

但我仅在播放视频时收到通知:如果我点击控制按钮,则不会调用此方法。

谢谢

AVPlayer 在按下暂停时发出一个 NSNotification。 AVPlayerDidPauseNotification(或类似的东西)。您可以在 NSNotificationCenter 中为此通知注册一个侦听器。

键路径不同,swift,点击后检查play/pause:

  player .addObserver(self, forKeyPath: "rate", options: NSKeyValueObservingOptions.New, context: nil)

并在

observeValueForKeyPath

像这样检查

if ((change!["new"] as! Int) == 1)

^ 此 returns 如果视频播放或暂停 true/false 例