Swift:如何访问全屏HTML视频的播放器对象?

big*_*ato 10 ios swift

我希望能够在AVPlayer从嵌入式浏览器全屏播放HTML视频时保留对接管屏幕的实例的引用.我的第一个方法是:

extension AVPlayerViewController {

    override public func viewDidAppear(animated: Bool) {
      super.viewDidAppear(animated)

      print("herezzzzzzzzzzzzzzzzzzzzzzzzzzz") // prints correctly
      print(self.player) // prints nil
    }
}
Run Code Online (Sandbox Code Playgroud)

然而它总是返回零.所以我正在尝试不同的方法.我想覆盖playAVPlayer 的初始化器或方法,但是如果没有得到objective-c选择器冲突,我似乎无法做到这一点.

import AVKit
import MediaPlayer

extension AVPlayer {
  override func play() { // this doesn't work. just an example of what i want
    super.play()

    print("do stuff here")
  }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法覆盖AVPlayer的一个实例方法,所以我可以存储一个引用self?或者它甚至不是AVPlayer?

Dun*_*n C 0

您无法覆盖扩展中的方法。或者更准确地说,编译器允许您这样做,但它不起作用。请参阅此线程:重写 Swift 扩展中的方法

你也不应该子类化AVPlayerViewController.

为什么不能直接读取创建它的类中的AVPlayerViewControllers属性?player