1

我正在制作一个 tvOS 应用程序。我有两个选项卡AB在我的应用程序中。假设视频正在AVC 的选项卡中播放。当我切换标签时,我想暂停当前正在播放的视频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)")
        }
   }

任何帮助将不胜感激。

4

1 回答 1

0

我遇到了同样的问题AVPlayerViewController,也许我的回答对你有帮助:这里

于 2015-11-21T13:44:06.320 回答