У меня есть разные UIView
один поверх другого; каждый из них воспроизводит видео, используя AVPlayer
Мне нужно, чтобы каждое видео воспроизводилось в конце, и для этого я использую этот код:
NotificationCenter.default.addObserver(self, selector: #selector(playerDidReachEnd), name: .AVPlayerItemDidPlayToEndTime, object: self.player.currentItem)
@objc fileprivate func playerDidReachEnd(){
self.player.seek(to: .zero)
self.player.play()
}
Я заметил, что когда вызывается селектор, все остальные игроки в других UIView
тоже начинают играть...
Это странно для меня, потому что я установил объект наблюдателя только как self.player.currentItem
Как я могу заставить играть только это AVPlayer
?
Проблема в том, что этот код есть в каждом из этих представлений. Поэтому, когда уведомление публикуется, все эти представления являются наблюдателями. Итак, все начинают играть.