如何知道视频何时进展到我设置的时间?

时间:2013-06-18 22:25:52

标签: javascript canvas html5-video

我正在尝试从html5视频捕获帧到画布。我有很长一段时间需要捕捉。我将视频设置为暂停,将videoElem.currentTime设置为一个值,然后使用canvasElem.drawImage()将其写入画布。

如果我在设置值和将其写入画布之间使用setTimeout,并且将超时时间设置得足够高,则可以正常工作。如果我没有将超时时间设置得足够大,我将在前一个(即错误的)位置获得快照。

但我只是在这里猜测,这意味着我可能会弄错,或者我可能会比我更慢地进入列表。

我已尝试监控视频上的各种事件处理程序,以及使用变化较小间隔的setTimeout,并每次检查各种事物以尝试判断视频是否应该在哪里。但没有运气。

具体来说,我没有幸运检查currentTime的值(它保持在我设置的值,即使视频还没有到达那里),也没有检查缓冲的数组(它会说它有视频的那部分,即使它还没有显示),也没有关注视频上的各种事件(timeupdate,canplay等)

我有什么方法可以丢失吗?

1 个答案:

答案 0 :(得分:1)

一旦超时结束,您是否尝试检查seeking属性的状态?如果它是false绘制到画布并设置新的currentTime,否则重新启动超时。

来源:http://www.w3.org/2010/05/video/mediaevents.html