Какой объем видеоконтента предварительно буферизуется при использовании AV-плеера с HTTP Live Streaming, и можно ли изменить это значение - PullRequest
2 голосов
/ 19 августа 2011

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

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

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

Спасибо.

1 Ответ

5 голосов
/ 17 октября 2012

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

например,

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 секунд предварительно буферизованного контента - вы можете только изучить это значение и не можете принудительно вызватьплеер для буфера больше данных.Однако вы можете использовать это значение, чтобы визуально указать объем данных, буферизованных для пользователя.

...