嗨,大家好,我的UIPageViewController和Notifications有问题。

我有一个包含页面数组的页面UIPageVewController,因此在这些页面中,我有一个AVplayer像下面这样循环播放:

 func loopVideo(videoPlayer:AVPlayer){
    NotificationCenter.default.addObserver(forName: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil, queue: nil){
        [weak videoPlayer] notification in
        videoPlayer?.seek(to: kCMTimeZero)
        videoPlayer?.play()
    }
}

问题是,当我滚动页面并滚动其他页面的通知时,会更改当前播放AVPlayer的视频。我在通知中放了一个打印,可以看到调用其他页面的通知。我不知道该怎么办?

我尝试使用NotificationCenter.default.removeObserver(self)在viewDidDisappear中删除通知,但是没有用。

你能帮助我吗?

谢谢

最佳答案

收到通知后,您只需检查一下即可。

检查通知对象AVPlayerItem是否与可见视图播放器playerItemvideoPlayer.currentItem相同

或者只是检查通知中的AVPlayerItem是否与yourCustomView.playerItem相同

编辑:

我看到您的对象为nil,应该是AVPlayerItem。 Check this thread.

关于ios - 在UIPageViewController中删除循环AVPlayer Observer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42252594/

10-11 22:15