I need to run the video on the page after it is fully downloaded. I found this option:

vid.addEventListener('progress', function() { var loadedPercentage = vid.buffered.end(0) / vid.duration; if(loadedPercentage > 1){ start() } else { vid.currentTime=vid.buffered.end(0); } }); 

Gives an error message:

Uncaught IndexSizeError: Failed to execute 'end' on 'TimeRanges': The index provided (0).

I also tried another option (var loadedPercentage = 100 * (vid.buffered.end (0)) / vid.duration;) - a similar error.

How correct?

    1 answer 1

    The error indicates that no video has been uploaded yet.

    Try this:

     vid.addEventListener('progress', function() { if( vid.buffered.length === 0 ){ vid.load(); return ; } var loadedPercentage = vid.buffered.end(0) / vid.duration; if(loadedPercentage > 1){ start() } else { vid.currentTime=vid.buffered.end(0); } }); 
    • corrected code, forgot return - Arnial
    • Thanks for your reply! This option does not work, after vid.currentTime = vid.buffered.end (0); the next segment does not load. Starts to work after adding under vid.currentTime = vid.buffered.end (0); vid.play (); vid.pause () ;, but swears ... in the console about the range. - VINET 4:27 pm