2016-07-09 16 views
2

Я ищу способ воспроизведения видео в формате HTML после его полной загрузки. Я попытался получить обратную связь, когда буферизация видео завершена, но она не работает. Вот мой код:play html5 видео после полной загрузки

var player = document.getElementById('bgvid'); 
player.addEventListener("progress", function() { 
    console.log("1"); 
    if (player.buffered.length > 0) { 
    console.log("2"); 
    var bufferedEnd = player.buffered.end(player.buffered.length - 1); 
    var duration = player.duration; 
    console.log(duration); 
    if (duration > 0) { 
     console.log((bufferedEnd/duration) * 100); 
    } 
    } 
}); 

я получаю только «1» на консоли, так что buffer.length никогда не проходят ноль даже с атрибутом преднагрузки на «авто». Единственное, что имеет значение, это атрибут autoplay. Когда включено, я получаю процент буфера, показанного на консоли, но если я приостанавливаю видео, он снова останавливает буферизацию.

Благодарим вас за любые идеи.

+0

Oooh ... Я как раз собирался задать этот вопрос, похоже, вы избили меня. В любом случае, я с нетерпением жду ответа. –

+1

Надеемся на ответ: D –

+0

взгляните на этот ответ - https://stackoverflow.com/questions/18251632/another-force-chrome-to-fully-buffer-mp4-video/18294706#18294706 - it предполагает, что видео достаточно мало, чтобы буферизировать как объект ajax, но вы точно знаете, когда все это есть ... – Offbeatmammal

ответ

0

Вы можете использовать событие canplaythrough, чтобы проверить, было ли видео полностью буферизованным (то есть загружено).

Надеюсь, это то, что вы ищете, удачи.

+0

> «Событие canplaythrough происходит, когда браузер оценивает, что он может воспроизводить через указанное аудио/видео без необходимости остановки для буферизации» –

+0

спасибо за ответ , таким образом, видео не полностью загружено. также по какой-то причине это событие запускается даже без атрибута предварительной загрузки. Я не знаю, почему. Все это на Chrome 51 –