Используя NetStream для потоковой передачи контента из http, я заметил, что esp с некоторыми экспортированными h264, если игрок обнаруживает пустой буфер, он останавливается и буферизуется до запрошенной длины (как и ожидалось).
Однако, как только буфер заполнен, воспроизведение не возобновляется, а вместо этого перескакивает вперед, как таковое - мгновенное воспроизведение буферизованной длительности за короткий промежуток времени и, таким образом, снова запускает пустой буфер ... затем это будет продолжаться снова и снова.
Предположительно, когда сетевой поток приостанавливается для буферизации, положение точки воспроизведения продолжается, и игрок пытается выполнить привязку к этой позиции при возобновлении - однако, учитывая, что для создания 2-секундного буфера может потребоваться 5 секунд, он снова получает бесполезный буфер.
(это предположение)
Я попытался обойти это, прослушивая событие netstatus пустого буфера, приостанавливая поток и в то же время настраивая цикл для проверки текущей длины буфера по сравнению с запрошенной длиной буфера ... и возобновляя, когда длина буфера становится равной больше или равно запрошенному буферу ... однако это вызывает проблемы, когда остается недостаточно видео ... например, 10-секундный буфер с оставшимися всего 5 секундами, цикл просто сидит там, ожидая длины буфера 10 секунд, когда осталось только 5 ...
Вы могли бы подумать, что можете просто проверить, что меньше, оставшееся время или запрошенная длина буфера ... однако время, которое показывает flash, неточно ..
Если вы добавите индекс текущего времени чистых потоков плюс время в буфере, общая продолжительность будет не всей продолжительностью фильма (в конце) .. она близка, но не такая же.
Это возвращает меня к исходной проблеме, и если есть другой способ исправить это, ясно, что flash знает, когда буфер готов, так как я могу получить паузу flash, когда он буферизуется, и возобновить, когда буфер будет готов? в настоящее время это не так ... он приостанавливается, а затем, когда буфер заполняется, он воспроизводит все буферизованное содержимое примерно за 0,1 секунды.
Заранее спасибо, Стивен.