【问题标题】:How to know when a video has advanced to the time I set it to be?如何知道视频何时推进到我设置的时间?
【发布时间】:2013-06-19 07:01:16
【问题描述】:

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

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

但我只是在这里猜测,这意味着我可能弄错了,或者我在列表中的进度可能比我必须的要慢。

我尝试过监控视频上的各种事件处理程序,以及使用 setTimeout 以不同的小间隔,并每次检查各种事情以试图判断视频是否在它应该在的位置。但没有运气。

具体来说,我没有运气检查 currentTime 的值(它保持在我设置的值,即使视频还没有到达那里),也没有检查缓冲数组(它会说有视频的那部分,尽管它还没有显示),也没有利用视频上的各种事件(时间更新、canplay 等)

有什么我缺少的方法吗?

【问题讨论】:

    标签: javascript canvas html5-video


    【解决方案1】:

    您是否尝试过在超时结束后检查seeking 属性的状态?如果是假画到canvas并设置新的currentTime,否则重启超时。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      • 2018-07-18
      • 1970-01-01
      相关资源
      最近更新 更多