0

我想知道是否可以在实际时间暂停视频

我测试过,视频总是停在x.xxxx.00

video.load();
video.play();

video.ontimeupdate = function(){
   if(this.currentTime >= 3) {
      video.pause();
   }
};

演示: https ://jsfiddle.net/l2aelba/4gh7a058/

有什么诀窍吗?

PS:应该也能有好的表现

4

1 回答 1

1

我相信你不能保证视频会在某个确切的时间停止。

根据媒体控制器的文档

每隔 15 到 250 毫秒,或者每当 MediaController 的媒体控制器位置发生变化时,以最不频繁发生的为准,用户代理必须排队一个任务以在 MediaController 上触发一个名为 timeupdate 的简单事件。

timeupdate 事件将在它可以使用最不常用的场景时触发。它没有让您选择为更新选择确切的触发时间。

您可以做的一个技巧如下:删除 timeupdate 事件,设置您自己的时间间隔并使用它检查时间。

setInterval(function () {
   var ct = video.currentTime;
   current_time_el.innerHTML = 'Current time : ' + ct;
   if(ct >= 3) {
      video.pause();
   }
}, 40);

但是,这种方法将迫使您对代码更加小心。(例如,当不再需要时,使用 clearInterval() 清理您的间隔)

于 2016-03-09T11:35:36.637 回答