我希望能够在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?
您无法覆盖扩展中的方法。或者更准确地说,编译器允许您这样做,但它不起作用。请参阅此线程:重写 Swift 扩展中的方法
你也不应该子类化AVPlayerViewController.
为什么不能直接读取创建它的类中的AVPlayerViewControllers属性?player
| 归档时间: |
|
| 查看次数: |
494 次 |
| 最近记录: |