在确切时间停止视频

Stop video at exact time

本文关键字:视频 时间      更新时间:2023-09-26

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

使用HTML5视频的推荐方法是使用timeupdate事件

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

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

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

停止HTML5视频的替代方法是添加#t=,endtime或每隔一段时间检查.currentTime,但是两者都与相同的粒度相关联。

如何在确切时间停止?

不必带有HTML5视频标签,该工具仅供我个人使用,因此黑客解决方案或需要Flash或其他插件的东西完全可以。

我认为它只能精确到 1 秒,因此使用 timeupdate 事件在您想要的毫秒范围内停止视频将很困难,正如您所注意到的,停止它大约有 250 毫秒的延迟。

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

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