如何在结束后隐藏视频 window 并稍后在 iOS Swift 中再次显示?
How to hide video window after it ends and show it again later in iOS Swift?
也许是个愚蠢的问题,但我对 Swift 和 iOS 的开发还很陌生。
我需要点播视频,屏幕上有一个按钮,上面写着 "PLAY",一旦你点击它,你就会播放视频,问题是视频停留在那里,在一切都完成后,所以我用这个代码来隐藏它:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "hideVideo:", name:AVPlayerItemDidPlayToEndTimeNotification, object: nil)
...
func hideVideo(notification: NSNotification) {
playerController.dismissViewControllerAnimated(false, completion: nil)
}
隐藏了视频,这很好,但是在尝试再次播放视频后,我得到的只是声音,视频 window 再也没有出现。
所以我的问题是,如何在关闭视图控制器后取消关闭它?
这是第一次和随后播放视频的代码:
private func playVideo() {
if playerController.isViewLoaded() { // ALL TIMES AFTER THAT IT SHOULD GO HERE
//create a CMTime for zero seconds so we can go back to the beginning
let seconds : Int64 = 0
let preferredTimeScale : Int32 = 1
let seekTime : CMTime = CMTimeMake(seconds, preferredTimeScale)
self.player.seekToTime(seekTime)
self.player.play()
}
else { // FIRST TIME VIDEO PLAYS
self.presentViewController(playerController, animated: false) {
self.player.play()
}
}
}
感谢您的帮助
好的,我明白了。
在 问题的帮助下,我能够通过不使用 AVPlayerViewController 而是使用可以隐藏和显示的 AVPlayerLayer 来弄清楚。
也许是个愚蠢的问题,但我对 Swift 和 iOS 的开发还很陌生。
我需要点播视频,屏幕上有一个按钮,上面写着 "PLAY",一旦你点击它,你就会播放视频,问题是视频停留在那里,在一切都完成后,所以我用这个代码来隐藏它:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "hideVideo:", name:AVPlayerItemDidPlayToEndTimeNotification, object: nil)
...
func hideVideo(notification: NSNotification) {
playerController.dismissViewControllerAnimated(false, completion: nil)
}
隐藏了视频,这很好,但是在尝试再次播放视频后,我得到的只是声音,视频 window 再也没有出现。
所以我的问题是,如何在关闭视图控制器后取消关闭它?
这是第一次和随后播放视频的代码:
private func playVideo() {
if playerController.isViewLoaded() { // ALL TIMES AFTER THAT IT SHOULD GO HERE
//create a CMTime for zero seconds so we can go back to the beginning
let seconds : Int64 = 0
let preferredTimeScale : Int32 = 1
let seekTime : CMTime = CMTimeMake(seconds, preferredTimeScale)
self.player.seekToTime(seekTime)
self.player.play()
}
else { // FIRST TIME VIDEO PLAYS
self.presentViewController(playerController, animated: false) {
self.player.play()
}
}
}
感谢您的帮助
好的,我明白了。
在