Я использую AVPlayer для воспроизведения видео. Продолжительность их короткая, 2-5 секунд. Они воспроизводятся в случайном порядке. Проблема в том, что при смене видео и начале воспроизведения нового видео устройство отстает на очень короткое время, но я не хочу, чтобы изменение было плавным. Есть ли способ предварительно загрузить видео с помощью AVPlayer?
iOS: предварительная загрузка видео AVPlayer
comment
Следуйте этому ответу. stackoverflow.com/questions/4218090/ Может быть полезно для вас.
- person iPatel   schedule 19.08.2016
Ответы (1)
Попробуйте использовать AVQueuePlayer
. Я предполагаю, что то, что вы описали как отставание, на самом деле является задержкой предварительной буферизации. Это должно быть сведено к минимуму или фактически полностью устранено при использовании AVQueuePlayer
, так как этот ребенок будет буферизовать следующий AVPlayerItem
во время воспроизведения текущего.
Из документации AVFoundation:
В iOS 4.1 и более поздних версиях вы можете использовать объект AVQueuePlayer для последовательного воспроизведения ряда элементов (AVQueuePlayer является подклассом AVPlayer).
Также см. ответ Михая на Pre-buffering-for-avqueueplayer.
person
Till
schedule
05.12.2011
Служба поддержки разработчиков Apple только что подтвердила мне, что AVQueuePlayer не буферизует элементы видео.
- person midas06; 10.04.2013
@ midas06 прав. Без буферизации. Вы все еще получаете разрыв между видео.
- person Jordan Smith; 17.11.2014
@midas06 @Jordan, убедитесь, что у вас есть
insertItem
достаточно времени, чтобы поставить элементы в очередь для плавного перехода. Если это достаточно короткие элементы, вам, возможно, придется поставить в очередь несколько элементов, прежде чем будет воспроизведен самый первый элемент. Вы можете обнаружить, что наблюдатели значений ключей помогают определить, когда элемент игрока готов. Также может помочь установка допусков playerItem.seekToTime(startTime, toleranceBefore: kCMTimeZero, toleranceAfter:kCMTimeZero)
- person mgamba; 25.06.2016
Следуйте этому ответу. stackoverflow.com/questions/4218090/ Может быть полезно для вас.
- person iPatel; 19.08.2016
@ midas06 похоже, это верно только для iOS 4, а не 5 или выше.
- person Till; 21.02.2020