Swift - убедитесь, что видео воспроизводилось непрерывно до конца - PullRequest
0 голосов
/ 04 февраля 2020

Я использую 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 !")
}

«Время прыгнуло!» печатается, даже если я смотрел видео, не касаясь ничего. Это нормальное поведение? Если да, как я могу убедиться, что пользователь непрерывно смотрел видео до конца? Я вынужден создать переменную таймера и проверить, если эта переменная больше, чем длина видео?

С уважением

...