AVPlayerViewController воспроизведение / пауза не работает в tvOS
Я работаю над приложением tvOS. У меня есть список видео, и перед воспроизведением основного видео необходимо воспроизвести объявление DFP с возможностью пропустить. Я добавил кнопку пропуска в представлении AVPlayerViewController и управляю фокусом (переместите кнопку пропуска фокуса в представление AVPlayerViewController). Фокус работает нормально, если я добавил AVPlayerViewController как childViewController, но в основной функции воспроизведения / паузы видео не работает.
self.addChildViewController(playerController)
self.view.addSubview(playerController.view)
Если я добавил AVPlayerViewController как ParentViewController, то фокус не работает.
self.view.addSubview(playerController.view)
playerController.didMoveToParentViewController(self)
Я реализовал код удара
let playerController = AVPlayerViewController()
var playerObj:AVPlayer!
var asset:AVAsset!
var playerItem:AVPlayerItem!
override func viewDidLoad() {
super.viewDidLoad()
playerController.view.frame = CGRectMake(0.0, 0.0, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height)
self.addChildViewController(playerController)
self.view.addSubview(playerController.view)
self.preferredFocusedView
self.updateFocusIfNeeded()
}
func playVideo(videoURL:String) {
self.playerController.showsPlaybackControls = false
self.asset = AVAsset(URL: NSURL(string: videoURL)!) as AVAsset
self.playerItem = AVPlayerItem(asset: self.asset)
self.playerObj = AVPlayer(playerItem: self.playerItem)
self.playerController.player = self.playerObj
self.playerItem.addObserver(self, forKeyPath: "status", options: NSKeyValueObservingOptions.New, context: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(VideoPlayerViewController.playerItemDidReachEnd(_:)), name: AVPlayerItemDidPlayToEndTimeNotification, object: self.playerObj.currentItem)
if !self.controlFlag{
// For main video
playFlag = true
self.playerController.showsPlaybackControls = true
}else{
// for DFP ad
playFlag = false
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(VideoPlayerViewController.playerStalledNotification(_:)), name: AVPlayerItemPlaybackStalledNotification, object: self.playerObj.currentItem)
}
self.playerController.player!.play()
}
override var preferredFocusedView: UIView? {
get {
if skipAdsButton != nil {
print("focus on skip button")
return self.skipAdsButton
}else{
print("focus on super.preferredFocusedView")
return super.preferredFocusedView
}
}
}
Как исправить эту проблему. Пожалуйста, предложите это.