AVPlayer пауза не работает TVOS

Я делаю приложение TOSOS. У меня есть две вкладки A а также B в моем приложении. Пусть скажем видео играет во вкладке A в вк. Я хочу приостановить текущее воспроизведение видео, когда я переключаю вкладки с A->B, Я делаю это в viewWillDisappear но видео только останавливается в первый раз. Когда я переключаю вкладки B->A снова и нажмите кнопку воспроизведения на пульте телевизора, он играет, но если я снова попробую переключить вкладки A->B видео продолжается и не останавливается.

    override func viewWillDisappear(animated: Bool) {
        super.viewWillDisappear(animated)


        avplayerVC?.player?.rate = 0.0
        print("Player Playing Rate : ", "\(avplayerVC?.player?.rate)")
    }

Я использую метод avPlayer.pause() и avPlayer.rate = 0.0, чтобы остановить его, но ни один из них не работает каждый раз.

Журнал говорит, что Player Playing Rate : Optional(0.0), но видео на самом деле не делает пауз. Вот мой полный код.

    class PlayViewController : UIViewController {


        var avplayerVC : AVPlayerViewController?
        var videoUrlStr : String?

        override func viewDidLoad() {
            super.viewDidLoad()

            print("In PlayViewController View Did Load")

            avplayerVC = AVPlayerViewController()

            let avAsset = AVAsset(URL: NSURL.init(string: videoUrlStr!)!)
            let avPlayerItem = AVPlayerItem(asset: avAsset)
            avplayerVC?.player = AVPlayer(playerItem: avPlayerItem)

            avplayerVC?.player?.seekToTime(kCMTimeZero)
            print("Status 1: " +  "\(avplayerVC?.player?.status.rawValue)")

            print(self.view?.frame)

            // doesn't work
            avplayerVC?.view.frame =  self.view.frame


            self.view.addSubview((avplayerVC?.view!)!)
            avplayerVC?.player?.play()
        }


        override func viewWillDisappear(animated: Bool) {
            super.viewWillDisappear(animated)

            print("Changing rate")
            avplayerVC?.player?.rate = 0.0
            print("Player Playing Rate : ", "\(avplayerVC?.player?.rate)")
        }
   }

Любая помощь будет высоко оценена.

1 ответ

Решение

У меня была такая же проблема с AVPlayerViewControllerМожет быть, мой ответ поможет вам: здесь

Другие вопросы по тегам