如何在实际时间内 pause/stop 视频(比如 3.00 秒)

How to pause/stop video in actually time (like 3.00 secs)

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

我测试过,视频总是在 x.xxx 而不是 x.00

处暂停
video.load();
video.play();

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

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

有什么技巧吗?

PS: 应该是性能尽可能好也

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

根据媒体控制器的documentation

Every 15 to 250ms, or whenever the MediaController’s media controller position changes, whichever happens least often, the user agent must queue a task to fire a simple event named timeupdate at the MediaController.

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

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

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

尽管如此,这种方法会迫使您更加小心地编写代码。 (例如,当不再需要时使用 clearInterval() 清理您的间隔)