Предварительная загрузка видеофайлов из сети для AVQueuePlayer/AVPlayer

У меня есть набор или URL-адреса, каждый из которых указывает на видеофайл mp4.

У меня есть временная шкала, похожая на ленту новостей, для этих видеофайлов (например, видео в Instagram). Пользователь может прокручивать вверх и вниз для просмотра каждого видео. Чтобы ускорить загрузку видео, я хотел бы предварительно загрузить следующие несколько видеофайлов, прежде чем пользователь прокрутит их вниз. Когда пользователь на самом деле прокрутит эти файлы, он начнет воспроизводиться без повторной загрузки из сети.

Файлы будут воспроизводиться в AVQueuePlayer.

Есть ли способ сделать это? Спасибо, парни!


person garthcn    schedule 13.03.2014    source источник


Ответы (1)


Я не знаю, как заранее попросить AVQueuePlayer выполнить буферизацию.

Вы можете создать прокси между AVPlayer и сетью. Это позволит вам отслеживать, что загрузил AVPlayer, чтобы вы могли заранее загружать и кэшировать предстоящие медиафайлы, чтобы они были готовы, когда их запрашивает AVPlayer. Самый чистый способ — зарегистрировать пользовательский NSURLProtocol (учтите, что это не работает в симуляторе iOS). Вы также можете запустить сервер на устройстве, например CocoaHTTPServer.

person Neal Ehardt    schedule 13.03.2014