这是来自 Chris Pearce 博客 的转载。为了符合 HTML5 规范,我们用三态 preload
属性替换了 autobuffer
属性。我们建议您更新您的代码。请参阅 MDC 上的文档。
上周晚些时候,我在 Firefox trunk 上实现了对 HTML5 视频的“preload”属性 的支持。这取代了我们之前支持的“autobuffer”属性。如果您之前在 HTML5 视频上使用了 autobuffer 属性,则需要更新为使用 preload 属性。
preload 属性为浏览器提供了一个提示,说明对给定媒体进行多少下载是合理的。preload 属性可以有三个值
- “none” – 建议浏览器在用户播放资源之前不要加载此媒体。浏览器将延迟加载媒体所需的任何网络流量,直到用户尝试播放资源或显式加载资源。我建议在用户不太可能播放资源时使用此 preload 值以及 poster 属性。这在移动环境中可能最有用,因为数据可能很昂贵。
- “metadata” – 建议浏览器无需预先加载整个资源。浏览器在加载元数据后会暂停加载,显示第一帧视频(如果没有海报图像),并确保可以播放媒体。这是默认行为,可以防止在 Web 开发人员不确定视频是否一定会播放时产生过多的网络流量。如果您未指定 preload 值,Firefox 将自动执行此操作。在没有 autobuffer 属性的情况下,Firefox 3.5 和 3.6 的默认行为也是如此。此默认行为是在节省带宽和用户便利性之间取得的折衷方案。
- “auto” – 建议浏览器尽可能多地加载资源。只要浏览器的媒体缓存未满,它就会继续下载。我建议这在“YouTube”案例中最为有用,在这种情况下,您拥有用户几乎肯定会观看的媒体,因此让用户下载媒体不太可能浪费服务器带宽。此行为与在 Firefox 3.5 和 3.6 中使用 autobuffer 属性相同。
由于 Firefox 4 中不再存在 autobuffer 属性,并且 Firefox 3.5 和 3.6 中不存在 preload 属性,如果您希望媒体完全下载,则应在 video 元素中同时包含 preload=”auto” 和 autobuffer,例如
<video autobuffer preload=”auto” src=”video.ogg”></video>
如果您希望仅在用户实际播放视频时才下载视频,则不应包含 preload 或 autobuffer 属性。Firefox 3.5、3.6 和即将推出的 Firefox 4 的默认行为是只加载到第一帧,然后暂停下载。
关于 Paul Rouget
Paul 是一位 Firefox 开发人员。