我正在制作一个 tvOS 应用程序。我有两个选项卡A
,B
在我的应用程序中。假设视频正在A
VC 的选项卡中播放。当我切换标签时,我想暂停当前正在播放的视频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)")
}
}
任何帮助将不胜感激。