Я использую AVPlayer
для отображения видео. Я sh хочу убедиться, что пользователь видел видео непрерывно до конца.
Использование
NotificationCenter.default.addObserver(self, selector: #selector(playerDidFinishPlaying), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: playerVC.player?.currentItem)
Я могу знать, когда видео закончилось, но проблема в том, что пользователь может перетаскивать видео до конца с помощью контроллеров воспроизведения.
Я думал, что NSNotification.Name.AVPlayerItemTimeJumped
- это решение, но это уведомление публикуется даже при нормальном воспроизведении видео. Я имею в виду следующее:
NotificationCenter.default.addObserver(self, selector: #selector(playerItemTimeJumped), name: NSNotification.Name.AVPlayerItemTimeJumped, object: playerVC.player?.currentItem)
и
@objc func playerItemTimeJumped(note: NSNotification) {
hasTimeJumped = true
print("Time has jumped !")
}
«Время прыгнуло!» печатается, даже если я смотрел видео, не касаясь ничего. Это нормальное поведение? Если да, как я могу убедиться, что пользователь непрерывно смотрел видео до конца? Я вынужден создать переменную таймера и проверить, если эта переменная больше, чем длина видео?
С уважением