如何在视频窗口结束后隐藏它并在以后的iOS Swift中再次显示?

时间:2015-12-17 22:25:58

标签: ios swift video uiviewcontroller avplayer

也许是一个愚蠢的问题,但我对Swift和iOS开发都很​​陌生。

我需要按需播放视频,屏幕上有一个按钮,显示"播放",一旦你点击它,你播放视频,问题是视频停留在那里,完成之后的所有内容,所以我使用此代码隐藏它:

NSNotificationCenter.defaultCenter().addObserver(self, selector: "hideVideo:", name:AVPlayerItemDidPlayToEndTimeNotification, object: nil)
...
func hideVideo(notification: NSNotification) {
    playerController.dismissViewControllerAnimated(false, completion: nil)
}

隐藏视频,这很棒,但是在尝试再次播放视频后,我得到的只是声音,视频窗口永远不会出现。

所以我的问题是,如何在视频控制器被解散后取消它?

以下是第一次及以后播放视频的代码:

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

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

好的,我明白了。

this问题的帮助下,我能够通过不使用AVPlayerViewController来解决问题,而是使用我可以隐藏和显示的AVPlayerLayer。