Я пытаюсь воспроизвести видео 4k в AVPlayer с Swift 3 для iOS12, и оно работает совершенно нормально, но я хочу, чтобы это видео воспроизводилось в цикле. Я нашел статьи, в которых говорилось, что вы должны использовать этот метод, чтобы зарегистрироваться для окончания воспроизведения видео:
NotificationCenter.default.addObserver(self, selector: #selector(self.replay),
name:NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil)
В этом случае self.replay
вызывается после того, как проигрыватель достиг конца видео. Это нормально работает для обычных видео, но как только я пытаюсь воспроизвести видео длиной ~ 4 секунды, оно не зацикливается.
Функция воспроизведения выглядит следующим образом:
@objc func replay() {
self.playerViewController!.player?.seek(to: CMTime.zero)
self.playerViewController!.player!.playImmediately(atRate: 1)
}
Я добавляю Observer в представление ViewController viewDidLoad
.
Это условие гонки, потому что, как указано, более длинные видео работают нормально? Как я могу предотвратить это поведение.
(Sidenote: Не обычный плакат, поэтому, пожалуйста, скажите мне, если мой вопрос задан неправильно или трудно понять)