检查html5视频是否准备就绪

dan*_*ntz 38 javascript html5 html5-video

如果HTML5视频已准备好播放,是否会触发JavaScript事件?

Mea*_*att 84

刚刚遇到这个问题,虽然它有点老了,但我会为未来的读者发帖(谁和我一样,可能来自谷歌).

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

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

Dantz正在寻找oncanplaythrough.

希望这可以帮助.

  • 最新列表位于:http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#mediaevents (4认同)

Oli*_*let 17

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


Orb*_*bit 6

这里好好讨论......

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/