在确切的时间停止视频

时间:2016-03-17 06:23:07

标签: javascript html5 flash video html5-video

我尝试制作一个小视频编辑网络工具来制作完美的视频循环,并且需要在准确的时间停止视频。

使用HTML5视频执行此操作的建议方法是使用timeupdate事件

video.addEventListener("timeupdate", function() {
    if (video.currentTime >= endtime)
        video.pause();
}, false);

然而问题是这些问题的粒度只有我在大多数浏览器中看到的大约100到300毫秒,这使得无法在准确的时间停下来并获得良好的视频循环。

因此,当我尝试在1.35秒停止时,它可能只会停在1.51或者下一个事件决定出现时。

停止HTML5视频的其他方法是在时间间隔内添加#t=,endtime或检查.currentTime,但两者都与相同的精确粒度相关联。

如何在确切时间停止?

不必使用HTML5视频标签,该工具仅供我个人使用,所以hacky解决方案或需要Flash或其他插件的东西都完全没问题。

1 个答案:

答案 0 :(得分:2)

我认为它只能精确到1秒,所以使用timeupdate事件就像你想要的那样在毫秒范围内停止视频会很困难,正如你所注意到的那样,停止它会有大约250ms的延迟。

您可以尝试使用setInterval以一定的速率轮询currentTime,例如每隔50毫秒,当视频超过停止时间时暂停视频。

这可能会为您提供所需(而不是依赖于timeupdate事件),但可能会在您的浏览器上增加额外负载。