Сколько видеоконтента предварительно буферизуется при использовании AV-плеера с HTTP Live Streaming, и можно ли изменить это значение

Я пишу видео-приложение, которое воспроизводит потоковое видео из Интернета, и для этого я использую AV-плеер. Мой вопрос заключается в том, как узнать, сколько видеоконтента предварительно буферизовано, в MPMoviePlayerController вы можете увидеть количество буферизованного контента на UISlider. Я хотел бы показать то же самое с помощью AV Player, а также иметь возможность изменять количество предварительно буферизованного контента.

Моя идеальная ситуация такова: пользователь транслирует файл фильма с помощью моего приложения, если он приостанавливает кнопку воспроизведения, фильм продолжает буферизоваться, как при просмотре видео на YouTube.

Пожалуйста помоги !!

Спасибо.


person coderGirl    schedule 18.08.2011    source источник
comment
Кто-нибудь знает, действительно застрял на этой части?   -  person coderGirl    schedule 24.08.2011
comment
Получили ли вы какое-либо решение по этому вопросу?   -  person Omer Waqas Khan    schedule 16.05.2012


Ответы (1)


Вы можете увидеть количество данных, которые были загружены и буферизованы перед точкой воспроизведения, посмотрев на свойство AVPlayerItem loadedTimeRanges.

e.g.

AVPlayer *player;
NSArray *loadedTimeRanges = player.currentItem.loadedTimeRanges;
NSLog(@"LoadedTimeRanges: %@", loadedTimeRanges);

В случае моего приложения я вижу:

LoadedTimeRanges: (
    "CMTimeRange: {{338070700809/1000000000 = 338.071}, {54651145016/1000000000 = 54.651, rounded}}"
)

где второе значение (54.651) представляет собой объем буферизации, который существует перед указателем воспроизведения. В случае остановки это значение уменьшается по мере продолжения воспроизведения, пока не достигнет приблизительно 0.

Я видел только от 55 до 60 секунд предварительно буферизованного контента — вы можете только проверить это значение и не можете заставить проигрыватель буферизовать больше данных. Однако вы можете использовать это значение, чтобы визуально указать пользователю объем буферизованных данных.

person David Anderson    schedule 17.10.2012
comment
Знаете ли вы, что если воспроизвести фрагмент видео, а затем вернуться к его повторному воспроизведению, происходит повторная буферизация или все данные, которые были буферизованы, остаются в памяти? - person Marwan Roushdy; 13.09.2016