【问题标题】:HTML5 Video player start playing from wrong timeHTML5 视频播放器从错误时间开始播放
【发布时间】:2017-07-10 07:43:42
【问题描述】:

我想控制视频从下面 JS 代码中给出的确切时间值开始播放。

但是玩家并没有像预期的那样做。 例如,如果我做vid.currentTime = 1.2,播放器将从 00:00 秒开始。或者如果我做 22,播放器将从时间线 00:21 秒开始

我不确定是不是因为无法从 mp4(编解码器挑战)中获得准确的时间线?

谢谢!

var vid = document.getElementById("video1");
vid.currentTime = 2;
vid.play();  
<video id="video1" width="320" height="240">
     <source src="http://example.com/movie.mp4" type="video/mp4" />
</video>

【问题讨论】:

  • 我在类似的条件下复制了fiddle 中的代码,至少对我而言,您指定的问题不存在(我添加了控件属性只是为了显示实际时间)。我错过了什么吗?

标签: javascript html html5-video


【解决方案1】:

我认为您应该等待浏览器加载元数据,然后触发元数据加载事件。假设您想在 21 秒后开始播放视频:

document.getElementById('video1').addEventListener('loadedmetadata', function(){
 this.currentTime = 21;
}, false);

【讨论】:

  • 我不认为这是原因。因为在我点击按钮触发 currentTime 设置之前,播放器已经在播放内容了。
  • 是的,因为由于 vid.play();它无法解释 vid.currentTime 行,因为未加载元数据并播放视频。所以把 this.play();在元数据事件侦听器中的 this.currentTime 之后。我希望它会工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-10
  • 2014-11-23
  • 2022-01-11
  • 2022-07-22
  • 2014-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多