谷歌Chrome 53产品的更新时屏蔽了部分Flash特定应用,Chrome 55浏览器将自动默认使用HTML 5视频,Chrome 58时直接以默认的方式禁止运行flash,至此,曾经无处不在的flash插件,终于将要退出历史舞台了。
图1 - 谷歌浏览器已默认禁用flash插件
作为视频播放主要载体flash插件的退出,html5视频应用就成了各类网站播放视频时,最佳的选择,那么,网站中使用html5标签来调用视频,应该注意些什么呢?
1. 视频文件格式的问题
HTML5调用视频的代码写法参考:
<video width="320" height="240" controls>
<source src="test.webm" type='video/webm'>
<source src="test.ogg" type='video/ogg'>
<source src="test.mp4" type='video/mp4'>
<p>您的浏览器不支持HTML5标签</p>
</video>
由于不同浏览器对视频格式的支持性不一样,所以,用户在引用html5时,得考虑用多个视频文件来做适配。例如以上代码,在浏览器中执行时,会从上到下,依次播放test.webm、test.ogg、test.mp4,当浏览不支持.webm格式时,会尝试播放.ogg格式。
2. 视频文件编码的问题
视频文件编码的问题,起因是MPEG标准引起。一个视频文件,主要由视频编码+音频编码两部分组成,简单一点说,mp4文件格式下,还细分成多种不同标准的编码,例如DivX、H.264,而只有主要是H.264在html5中使用时效果最佳,阿酷本人测试过其他编码,在html5下是不显示画面,也就是不支持;音频方面,也有mp3编码、aac编码、经本人测试,aac的效果最佳。文件编码方面说了这么多,汇成简单一点的总结就是:如果你要在html5中调用mp4文件,请使用 h.264的视频编码 + aac的音频编码。参考如下图。
图2 - 视频文件视频编码和音频编码
3. 浏览器是否支持html5的video标签
浏览器产品市面上有各种各样的,charome、FireFox、IE、QQ浏览器、360浏览器等等,并且每种浏览器的版本对html5支持情况,也各不相同,那么就得在调用html5视频标签时,对浏览器的支持情况做个判断,使用video 对象的 canPlayType 方法来实现,canPlayType会返回"empty"、"maybe" 或 "probably"。
var playMsg = myvideo.canPlayType('video/mp4; ');
if ("" != playMsg) { msg.innerHTML += "mp4/H.264 is " + playMsg + " supported"; }
4. 视频结束事件的处理方法
在html5的video视频标签中,视频结束事件,是由 onended 来处理的,以此可以实现视频的列表连播及其他视频播放结束时的动作。但是注意,使用时,你需把onended加到的video标签中去,代码参考如下:
<video width="320" height="240" controls οnended="myFunction()">
<source src="test.webm" type='video/webm'>
<source src="test.ogg" type='video/ogg'>
<source src="test.mp4" type='video/mp4'>
<p>您的浏览器不支持HTML5标签</p>
</video>
<script>
function myFunction() { alert("视频已播放结束"); }
</script>
图3 - 视频结束事件onended效果示意
5. html5播放器也可以很酷
截图效果:
图1-1:倍速播放效果
图1-2:倍速播放效果