Я использую AVPlayer в приложении Cocoa, и я выполнил команду, которая перескакивает до конца видео.
Проблема заключается в том, что AVPlayer не ищет, где я сказал.
Например, у одного из видео у меня есть 4 минуты и 14 секунд. Когда я пытаюсь до конца, AVPlayer ищет 4 минуты и 12 секунд - две секунды. Если я тогда нажму на игру, игрок будет играть в течение двух секунд, а затем достигнет конца.
Моя первая попытка:
[self.player seekToTime:self.player.currentItem.duration];
Я переключил его на это:
[self.player seekToTime:self.player.currentItem.duration
toleranceBefore:kCMTimePositiveInfinity
toleranceAfter:kCMTimeZero];
Ни один из них не работает лучше, чем другой.
Я также попытался найти kCMTimePositiveInfinity
. Тогда я просто проигнорировал меня.
Кажется, не имеет значения, загрузил ли плеер эту часть видео. Я даже могу попытаться не до конца, поиграть до конца, а затем попытаться снова попытаться до конца, и он вернется к не совсем концу.
Недостаток не всегда равен двум секундам. На некоторых моих видеороликах он работает более или менее точно, прыгая очень близко к истинному концу, если не точно к нему. По крайней мере один, он сокращается до трех секунд. Длина, по-видимому, не является фактором; все они имеют одинаковую длину, за исключением одной, которая длится более часа и требует двух секунд.
Итак, почему AVPlayer прыгает на три секунды меньше, о чем я ему рассказывал, и как мне убедить его перейти к моменту, когда я попросил?