1. 前言背景
在HTML5出现之前,Web页面访问音视频主要是通过Flash,Activex插件,还有微软后来推出的silverlight来展现的,尽管FLASH曾经风靡全球,但是随着互联网的不断发展,进入移动时代以后,Flash的风头渐渐被HTML5替代,主要原因是Flash经常爆出漏洞,安全性令人担忧,性能方面较差,对网络浏览和设备的电池也消耗比较大等等,Flash天生就是为PC而生,无法适应移动时代的特点,所以被各大厂商逐渐抛弃,连Adobe自己都已经放弃了Flash。所以HTML5是未来Web多媒体的主要方向。
2. 音频格式
HTML5 Audio支持的格式有:wav,mp3和ogg格式,首先看看各大浏览器的支持情况
浏览器 | MP3 | Wav | Ogg |
---|---|---|---|
Internet Explorer 9+ | YES | NO | NO |
Chrome 6+ | YES | YES | YES |
Firefox 3.6+ | YES | YES | YES |
Safari 5+ | YES | YES | NO |
Opera 10+ | YES | YES | YES |
先安利一下格式的定义:
Ogg:一种新的音频压缩格式,是完全免费、开放和没有专利限制的。
MP3:是一种音频压缩技术。它被设计用来大幅度地降低音频数据量。
WAV:为微软公司开发的一种声音文件格式,声音文件质量和CD相差无几。
opera,chrome和firefox对三种模式都支持,而微软和苹果则对自己有专利利益的mp3格式情有独钟,而对潜在竞争者开源的ogg进行了封杀,ogg是一种为了对抗mpeg(音频上就是mp3)格式开发的一种音视频技术,但他的关系比较微妙,因为目前没有哪个正式的公司敢直接使用ogg,因为商业推广ogg存在专利诉讼风险,之所以目前还没有人诉讼ogg,是因为目前没有大鱼上钩,不值得诉讼,但是反过来一旦诉讼失败,ogg被证明没有侵权mpeg,那以后mpeg就没有人使用了。
3.视频格式
视频格式也有对应的3种格式:
1、Ogg = 带有Theora 视频编码和Vorbis 音频编码的 Ogg 文件(如:video.ogg);
2、MPEG4 = 带有H.264 视频编码和AAC 音频编码的MPEG 4 文件(如:video.mp4);
3、WebM = 带有VP8 视频编码和Vorbis 音频编码的WebM 文件(如:video.webm)。
格式 | IE | Firefox | Opera | Chrome | Safari |
---|---|---|---|---|---|
Ogg | No | 3.5+ | 10.5+ | 5.0+ | No |
MPEG 4 | 9.0+ | No | No | 5.0+ | 3.0+ |
WebM | No | 4.0+ | 10.6+ | 6.0+ | No |
4. video中的坑
(1)自动播放,类似于audio标签,video也需要进行类似的操作
(2)多视频播放,同样也是要采用衔接,设置currenttime的方法来实现,还有一种方法是设置dom的src属性,再第一个视频播放完毕时,设置src属性再进行play也是可以播放多个视频的,但是缺点是,新的视频需要加载,缓冲时间。
(3)循环播放类似于Audio标签也是通过事件来处理
(4)预加载,preload属性ios下是不支持的,android下也不能检测是否加载成功,所以通用的做法是对视频进行play方法然后立刻暂停