对所有当前正在播放的视频执行一个AVPlayer的AVPlayerItemDidPlayToEndTime操作

Pra*_*iya 2 ios avplayer swift

问题:在具有播放器的collectionview单元中

如果我同时播放两个视频,并寻找第一个视频结束,然后AVPlayerItemDidPlayToEndTime触发两次,则两个视频都重新开始

在集合视图单元格中

override func awakeFromNib() {
        NotificationCenter.default.addObserver(forName: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: player?.currentItem, queue: .main, using: {[weak self]  (notification) in
            if self?.player != nil {
                self?.player?.seek(to: kCMTimeZero)
                self?.player?.play()
            }
        })
   }
Run Code Online (Sandbox Code Playgroud)

和一个播放按钮动作来播放视频。
在单元格中,我要寻找滑块。

在此处输入图片说明

任何帮助,将不胜感激

Dan*_*yev 7

确保playerplayer?.currentItem不等于nil注册通知时。对我来说,似乎其中之一是nil,而您基本上是在订阅所有.AVPlayerItemDidPlayToEndTime通知(因为objectnil)。

为避免这种情况,请在分配AVAsset给播放器后立即订阅通知。