检查html5video是否准备就绪

是否有JavaScript事件触发,如果HTML5video准备好播放?

我假设准备好播放意味着readyState属性等于HAVE_ENOUGH_DATA常量(数值4)。 根据文档 ,当readyState属性变为这个值时,应该触发一个canplay事件。

刚刚遇到这个问题,虽然有点老,但我将这篇文章发给未来的读者(他们可能来自Google)。

截至今天,这是html5媒体的事件列表(根据W3C):

  • onabort :脚本在中止时运行
  • oncanplay :当一个文件准备好开始播放的时候运行的脚本(当它缓冲到足以开始播放时)
  • oncanplaythrough :当文件可以一直播放到最后而不暂停缓冲时运行的脚本
  • ondurationchange :当媒体长度变化时要运行的脚本
  • onemptied :脚本在发生问题时运行,并且文件突然不可用(如意外断开连接)
  • onended :当媒体到达结尾时要运行的脚本(对“倾听”的消息有用的事件)
  • onerror :脚本在加载文件时发生错误时运行
  • onloadeddata :加载媒体数据时要运行的脚本
  • onloadedmetadata :加载元数据(如尺寸和持续时间)时要运行的脚本
  • onloadstart :在文件开始加载之前运行的脚本
  • onpause :当媒体被用户暂停或以编程方式暂停时运行的脚本
  • 播放 :当媒体准备开始播放时要运行的脚本
  • 播放 :当媒体实际上已经开始播放时要运行的脚本
  • onprogress :浏览器正在获取媒体数据的过程中要运行的脚本
  • onratechange :每次播放速率改变时要运行的脚本(例如,当用户切换到慢动作或快进模式时)
  • onreadystatechange :每当准备就绪状态改变时准备运行的脚本(就绪状态跟踪媒体数据的状态)
  • onseeked :当seek属性设置为false表示查找已经结束时要运行的脚本
  • onseeking :将seek属性设置为true时运行的脚本,表示search处于活动状态
  • onstalled :脚本在浏览器因任何原因无法获取媒体数据时运行
  • onsuspend :获取媒体数据时要运行的脚本在被任何原因完全加载之前停止
  • ontimeupdate :当播放位置改变时要运行的脚本(例如当用户快进到媒体中的不同点时)
  • onvolumechange :每次音量改变时要运行的脚本(包括将音量设置为“静音”)
  • 等待 :当媒体暂停但预计将恢复时(如媒体暂停以缓冲更多数据时)运行的脚本。

丹斯正在寻找oncanplaythrough。

希望这可以帮助。

好的讨论在这里…

http://tiffanybbrown.com/2010/07/05/the-html5-video-progress-event/

特别是第一个评论。

基本上,这是在规范中被删除,因为它不完全与媒体的呈现方式齐头并进。 相反,.buffered被添加了。

这是一个缓冲使用的例子:

http://hacks.mozilla.org/2010/08/html5-video-buffered-property-available-in-firefox-4/

video准备播放时,您有2个事件需要处理。

  • canplay:当video准备播放但是缓冲不完成时触发
  • canplaythrough:当video准备播放和缓冲完成时触发