检查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准备播放和缓冲完成时触发