iOS Swift App AVPlayerController忽略不在外部显示器上工作

时间:2016-04-01 09:54:37

标签: ios swift ipad video display

我制作了一个应用程序,用于展览的几部短片,该应用程序在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,以便它可以直接在每个显示器上回到我的应用程序?

1 个答案:

答案 0 :(得分:1)

我完全忘记在这里发布我的答案,万一其他人可能会遇到这个问题。

以下代码将放在playerDidReachEnd中,差别不大,但它会从所有屏幕中删除播放器。

playerController.dismissViewControllerAnimated(true, completion: nil)
playerController.view.removeFromSuperview()
self.presentedViewController?.dismissViewControllerAnimated(true, completion: nil)