嗨,大家好,我的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
是否与可见视图播放器playerItem
,videoPlayer.currentItem
相同
或者只是检查通知中的AVPlayerItem
是否与yourCustomView.playerItem
相同
编辑:
我看到您的对象为nil,应该是AVPlayerItem。 Check this thread.
关于ios - 在UIPageViewController中删除循环AVPlayer Observer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42252594/