Video 从特定点停止并播放视频
假设我有一个视频,我想在某个地方停下来,在这里留言 例如,如果时间是Video 从特定点停止并播放视频,video,html5-video,Video,Html5 Video,假设我有一个视频,我想在某个地方停下来,在这里留言 例如,如果时间是4.282,则我希望此时正好显示消息4.282: $("video").on("timeupdate", function(event){ if(video.currentTime == 4.282) { showMessage(); } ); Howewervideo.currentTime很少更新时间,因为它无法捕捉时间。例如,console.log(video.currentTime)将显示: 0.15 0.66
4.282
,则我希望此时正好显示消息4.282
:
$("video").on("timeupdate",
function(event){ if(video.currentTime == 4.282) { showMessage(); }
);
Howewervideo.currentTime
很少更新时间,因为它无法捕捉时间。例如,console.log(video.currentTime)将显示:
0.15
0.66
1.12
etc
我也尝试过设置间隔,但仍然不够精确。我成功了
首先,您必须设置视频播放的时间间隔
setInterval( function() {
var tim = video.currentTime.toFixed(2);
var timi = tim+0.01;
if(tim == messageTime || timi == messageTime ) { showMessage(); }
return tim;
}, 20);
这将为您提供更精确的视频时间更新。你会得到这样的结果:
1.02
1.04
1.06
etc.
因此,现在将更容易获得结果。Hovewer有时会播放不同时间的视频,可能会变成:
1.01
1.03
因此,别忘了添加tim变量+0.01,这将保证捕获所有消息。我成功了
首先,您必须设置视频播放的时间间隔
setInterval( function() {
var tim = video.currentTime.toFixed(2);
var timi = tim+0.01;
if(tim == messageTime || timi == messageTime ) { showMessage(); }
return tim;
}, 20);
这将为您提供更精确的视频时间更新。你会得到这样的结果:
1.02
1.04
1.06
etc.
因此,现在将更容易获得结果。Hovewer有时会播放不同时间的视频,可能会变成:
1.01
1.03
因此,不要忘记添加tim变量+0.01,这将保证捕获所有消息。您将无法获得如此高的精度。您可以尝试设置超时(func,0)使用
performance.now()
检查以获得比Date更好的时间戳,但即使这样,您也无法确切知道视频何时开始,并且某些浏览器不支持performance
对象。。。另外,requestAnimationFrame
将在每一帧上触发,因此您可以使用它并检查是否距离请求的时间足够近,您至少会处于良好的帧上。另外,我真的不明白你为什么需要这样的精确度,你能说得更清楚吗?用户将能够在视频上标记和绘制东西。因此,节省精确的时间是非常重要的,否则图形可能会出现在错误的场景中。您将无法获得如此高的精度。您可以尝试设置超时(func,0)使用performance.now()
检查以获得比Date更好的时间戳,但即使这样,您也无法确切知道视频何时开始,并且某些浏览器不支持performance
对象。。。另外,requestAnimationFrame
将在每一帧上触发,因此您可以使用它并检查是否距离请求的时间足够近,您至少会处于良好的帧上。另外,我真的不明白你为什么需要这样的精确度,你能说得更清楚吗?用户将能够在视频上标记和绘制东西。因此,节省精确的时间非常重要,否则图形可能出现在错误的场景中