我尝试制作一个小视频编辑网络工具来制作完美的视频循环,并且需要在准确的时间停止视频。
使用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或其他插件的东西都完全没问题。
答案 0 :(得分:2)
我认为它只能精确到1秒,所以使用timeupdate事件就像你想要的那样在毫秒范围内停止视频会很困难,正如你所注意到的那样,停止它会有大约250ms的延迟。
您可以尝试使用setInterval以一定的速率轮询currentTime,例如每隔50毫秒,当视频超过停止时间时暂停视频。
这可能会为您提供所需(而不是依赖于timeupdate事件),但可能会在您的浏览器上增加额外负载。