2016-06-03 3 views
0

Я видел 2 свойства AVPlayerItem:В чем разница между свойствами «playbackBufferFull» и «playbackBufferEmpty»?

@property (nonatomic, readonly, getter=isPlaybackBufferFull) BOOL playbackBufferFull; 

@property (nonatomic, readonly, getter=isPlaybackBufferEmpty) BOOL playbackBufferEmpty; 

Теперь, вот что говорит Apple, документация:

playbackBufferFull:

отчеты Это свойство, что буфер данных, используемых для воспроизведения достигает емкость. Несмотря на то, что буфер воспроизведения достигает емкости, возможно, не существует достаточных статистических данных для поддержки playbackLikelyToKeepUp прогноз YES.

playbackBufferEmpty:

Это указывает на то, что воспроизведение потреблял все буферные среды и что воспроизведение остановится или конец.


Из этих утверждений, что я понимаю, что:

playbackBufferFull:

Все данные были загружены, чтобы играть. Например, я воспроизвожу видео с URL, длина которого составляет 5 минут. Когда все это содержимое до конца будет загружено, они будут истинными.

playbackBufferEmpty:

Фактическое воспроизведение потребил весь буфер загружается до сих пор. Например, данные до 2,3 минуты были загружены, и воспроизведение тоже достигло того времени и больше содержимого. (Я думаю, что настало время начать наш карусель, индикатор)

Я что-то не понял? Если да, пожалуйста, исправьте меня.

Любые знания или советы по глубине приветствуются!

ответ

2

Я не эксперт по этому вопросу, но вот мое понимание:

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

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

Если он пуст, это означает, что видео не готово к воспроизведению, поэтому воспроизведение завершено или оно замерзает и отображает сообщение «буферизации», когда оно загружает больше контента.

+0

Duncan C, это добавляет много моего понимания ... upvoted – NSPratik

+0

@NSPratik, если бы я ответил на ваш вопрос, тогда вы должны принять мой ответ. (голосование приветствуется, но полностью зависит от вас). –