Why does audio.buffered.end(0) get an error message when I try to get buffered time
I believe that error is coming when accessing buffered.end before the element is initialized. you can rewrite that code as to avoid it
track = document.getElementById("music");
track.onprogress = function(){
var w = 100*(track.buffered.end(0))/track.duration;
$('#buffered').css("width",w+"%");
}
track = document.getElementById("music");
track.onprogress = function(){
if(track.buffered.length>0){
var w = 100*(track.buffered.end(0))/track.duration;
$('#buffered').css("width",w+"%");
}
}
The accepted answer doesn't solve the problem for me. You also should check that the track has loaded before you access buffered.end like so:
track.onprogress = function(){
if (track.readyState === 4){
var w = 100*(track.buffered.end(0))/track.duration;
$('#buffered').css("width",w+"%");
}
}