加载时在特定位置启动HTML5视频?

Joh*_*dep 77 javascript html5-video

我正在尝试播放HTML5视频(VP8编码).我想要的是在某个位置玩它.让我们说50秒后的时间.

我试过但似乎有一些问题.你能否说一下我做错了什么?

这是代码:

   <video id="vid1" width="640" height="360">
       <source src="file.webm" type="video/webm" /> 
       Your browser does not support the video tag.
   </video>
   <script>
       document.getElementById('vid1').currentTime = 50;
   </script> 
Run Code Online (Sandbox Code Playgroud)

我试过但它不起作用.视频加载时,它从刚开始播放.但是,如果我在播放过程中调用它,就像播放视频一段时间后它可以正常工作.有什么我想念的吗?

Ric*_*d M 116

您必须等到浏览器知道视频的持续时间才能寻找特定时间.所以,我认为你想要等待'loadedmetadata'事件,如下所示:

document.getElementById('vid1').addEventListener('loadedmetadata', function() {
  this.currentTime = 50;
}, false);
Run Code Online (Sandbox Code Playgroud)

  • 这在Safari中不起作用.我也尝试过loadeddata事件.有任何想法吗? (2认同)
  • 使用“durationchange”事件并始终在更改播放视频之前调用暂停 (2认同)

rlo*_*ang 44

您可以直接链接Media Fragments URI,只需将文件名更改为file.webm #t = 50即可

这是一个例子

这很酷,你可以做各种各样的事情.但我不知道浏览器支持的当前状态.


ani*_*ita 43

没有使用JAVASCRIPT

只需添加#t=[(start_time), (end_time)]到媒体网址的末尾即可.唯一的挫折(如果你想这样看)你需要知道你的视频有多长时间来表明结束时间. 例:

<video>
    <source src="splash.mp4#t=10,20" type="video/mp4">
</video>
Run Code Online (Sandbox Code Playgroud)

注意: IE不支持

  • 如果你不想指定结束时间,你可以简单地添加`#t=10` (6认同)
  • 确认不在IE == Issue Explorer中工作 (2认同)
  • 只是补充一下,这称为媒体片段,请参阅规范中的更多内容:http://www.w3.org/TR/media-frags/ (2认同)

小智 27

在html5中使用视频标签时调整视频开始和结束时间;

http://www.yoursite.com/yourfolder/yourfile.mp4#t=5,15

逗号左边是以秒为单位的开始时间,逗号右边是以秒为单位的结束时间.删除逗号和结束时间仅影响开始时间.


小智 6

在 Safari Mac 上的 HLS 源中,我需要使用 returneddata 事件而不是元数据事件。