我制作了一个应用程序,用于展览的几部短片,该应用程序在iPad上功能齐全,但在外部显示器上,视频将保留在最后一帧。 我们希望使用iPad作为显示器的外部控制,但是当没有视频播放时,用户应该总是看到视频选择gui
这是启动视频的代码段
let playerItem = AVPlayerItem(URL: NSURL(fileURLWithPath: videoPath!))
let player = AVPlayer(playerItem: playerItem)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(VideoCollectionViewController.playerDidReachEnd(_:)), name: AVPlayerItemDidPlayToEndTimeNotification, object: playerItem)
playerController.player = player
self.presentViewController(playerController, animated: true) {
self.playerController.player!.play()
}
这是函数到达结束时调用的函数。
func playerDidReachEnd(notification: NSNotification) {
NSNotificationCenter.defaultCenter().removeObserver(self)
playerController.player?.currentItem
playerController.dismissViewControllerAnimated(true, completion: nil)
}
如果使用播放器的“完成”按钮停止视频,它也不会回退到应用程序屏幕
是否有任何技巧可以让它解雇AVPlayerController,以便它可以直接在每个显示器上回到我的应用程序?
答案 0 :(得分:1)
我完全忘记在这里发布我的答案,万一其他人可能会遇到这个问题。
以下代码将放在playerDidReachEnd中,差别不大,但它会从所有屏幕中删除播放器。
playerController.dismissViewControllerAnimated(true, completion: nil)
playerController.view.removeFromSuperview()
self.presentedViewController?.dismissViewControllerAnimated(true, completion: nil)