Javascript 循环内的视频持续时间不工作

Javascript 循环内的视频持续时间不工作,javascript,html,google-chrome,Javascript,Html,Google Chrome,代码取自以下链接: 代码中包含以下内容: function update() { var p = v.currentTime/v.duration*100; b.style.background = "linear-gradient(to right, #500 "+p+"%, #000 "+p+"%)"; } function render() { var c = v.textTracks[0].cues; for (var i=0; i<c

代码取自以下链接: 代码中包含以下内容:

  function update() {
    var p = v.currentTime/v.duration*100;
    b.style.background = "linear-gradient(to right, #500 "+p+"%, #000 "+p+"%)";
  }

  function render() {
    var c = v.textTracks[0].cues;
    for (var i=0; i<c.length; i++) {
      var s = document.createElement("span");
      s.innerHTML = c[i].text;
      s.setAttribute('data-start',c[i].startTime);
      s.style.width = ((c[i].endTime-c[i].startTime)/888*480-7)+'px';
      s.addEventListener("click",seek);
      b.appendChild(s);
    }
  }
函数更新(){
var p=v.currentTime/v.duration*100;
b、 style.background=“线性梯度(向右,#500“+p+”%,#000“+p+”%)”;
}
函数render(){
var c=v.textTracks[0]。提示;

对于(var i=0;i@CBroe评论让我解决了这个问题: 而不是

  v.addEventListener('click',play,false);
  v.addEventListener('timeupdate',update,false);
  t.addEventListener('loaded',render,false); // Bug in FF31 MAC: wrong event name
  t.addEventListener('load',render,false);
使用


声明一个全局变量
=v.duration
(在两个函数之外)并改用它。@sideroxylon一个全局变量已经声明。有关完整的源代码,请参阅链接。我想在调用v.duration变量时提到这一点。我得到的是“NaN”。这意味着不是一个数字!关于
duration
:“如果媒体数据可用,但长度未知,则此值为
NaN
”–很可能是这种情况,在调用
render
时,持续时间根本不可用。也许可以尝试在其他事件上调用它–可能会起作用。
  v.addEventListener('click',play,false);
  v.addEventListener('timeupdate',update,false);
  t.addEventListener('loadedmetadata',render,false);