如何在实际时间内 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() 清理您的间隔)
我想知道是否可以在实际时间暂停视频?
我测试过,视频总是在 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() 清理您的间隔)