17.1 第三方插件及步入原生
如上文所述,在HTML5出现之前,为网页添加媒体(如音频和视频)的唯一方法就是通过第三方插件。
这些第三方插件有点像黑箱,用户必须真正安装了它们才能起作用。如果使用Flash Player这样的插件,用户很有可能已经安装了,因为它的市场份额很高,大多数用户系统都安装了该插件。
不过,这样做也有一些问题。在某个浏览器中嵌入Flash视频的代码在另一个浏览器中可能不起作用,也没有包围它的优雅方式。而且,总是存在速度方面的问题,因为浏览器会将媒体内容的播放完全交给插件。
考虑到这些问题,HTML5规范中添加了原生的多媒体。这样做有很多好处:速度更快(任何浏览器原生的功能势必比插件要快一些),原生控件内置到浏览器,对插件的依赖极大地降低(但也并非完全不依赖,这在后面将会看到)。
对于任何一套标准,都有关于HTML5原生多媒体及其支持的文件格式的问题。最初,HTML5规范指定了两种兼容HTML5的浏览器必须支持的媒体格式(分别对应音频和视频)。这本来是很好的,但并非所有的厂商都愿意遵循。诺基亚和苹果均未选择使用这些强制的媒体格式,因此这样的要求在规范中被移除了。这意味着你需要为你的媒体提供一种以上的格式才能让它在兼容HTML5的浏览器中播放。后面我们将详细地讨论这些问题。
当苹果宣布不再在其移动设备(包括iPhone和iPad)上支持Flash时,HTML5及原生媒体就变得更为实用了。随着这些设备的日渐普及,过去播放媒体文件对Flash的依赖正在迅速削减,因此迫切需要一种新的解决方案。于是,HTML5原生多媒体进入了这一领域并展现出了强大的力量,因为苹果移动设备的浏览器是支持HTML5的。
闲话少叙,下面就来看看如何为网页添加原生的视频。