我正在尝试将 html5 视频中的帧捕获到画布上。我有一长串需要记录的时间。我将视频设置为暂停,将 videoElem.currentTime 设置为一个值,然后使用 canvasElem.drawImage() 将其写入画布。
如果我在设置值和将其写入画布之间使用 setTimeout 并且将超时时间设置得足够高,则此方法可以正常工作。如果我没有将超时时间设置得足够大,我将在前一个(即错误的)位置获得快照。
但我只是在这里猜测,这意味着我可能弄错了,或者我可能在列表中的进度比我必须的要慢。
我尝试监视视频上的各种事件处理程序,以及使用 setTimeout 以不同的小间隔,并每次检查各种事情以尝试判断视频是否在它应该在的位置。但没有运气。
具体来说,我没有检查 currentTime 的值(它保持在我设置的值,即使视频还没有到达那里),也没有检查缓冲数组(它会说它有那个部分的视频,即使它还没有显示),也没有利用视频上的各种事件(timeupdate、canplay 等)
有什么我缺少的方法吗?