2015-11-12 116 views
1

我正在製作tvOS應用程序。我的應用程序中有兩個標籤AB。假設視頻正在VC中的選項卡A中播放。當我從A->B切換標籤時,我想暫停當前正在播放的視頻。我在viewWillDisappear中這樣做,但視頻只是第一次暫停。當我再次切換標籤B->A並按下電視遙控器上的播放按鈕時,它會播放,但如果我再次嘗試切換標籤A->B,視頻會繼續播放,並且不會停止。AVPlayer暫停不工作TVOS

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)") 
     } 
    } 

任何幫助將不勝感激。

回答

0

我與AVPlayerViewController有同樣的問題,也許我的回答可以幫助你:here