10
09/2014
html5 video
html5 video tag
标准写法为
<video controls preload="false" poster="v/oceans.png"> <source src="v/oceans.mp4" type="video/mp4"> <source src="v/oceans.ogv"> <track src="v/zimu.vtt" kind="subtitles" srclang="中文" label="中文"></track> <track src="v/zimu.vtt" kind="captions" srclang="中文" label="中文"></track> </video
- controls 是否显示控制(播放、暂停、全屏、字幕等)
- preload 是否预加载
- poster 封面(视频截图)
- source 视频的多个地址(依次)。firefox 不能放 mp4,只能 ogg,或者 webm
- track 字幕
现实是残酷的
有很多视频解决办法。 videojs jwplayer 等等。思路都是:
如果sb浏览器,如ie67等,用 flash 替换。否则用浏览器自带。
判断办法
var v = document.createElement('video'); if(v.canPlayType){console.log('浏览器支持 video tag');}
更可以判断是否支持某视频格式
return v.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"');
当然,如果有 Modernizr js,就更简单了
if (Modernizr.video) { // let's play some video! but what kind? if (Modernizr.video.webm) { // try WebM } else if (Modernizr.video.ogg) { // try Ogg Theora + Vorbis in an Ogg container } else if (Modernizr.video.h264){ // try H.264 video + AAC audio in an MP4 container } }
其它
ie8-9-10 这个笨蛋,经常返回 unsupported video type or invalid file path。估计是 mime 的问题,懒得验证了。
iphone 也是笨蛋。更方面显示,都是支持的。但就是不能播放。有说法,图像分辨率超过 iphone 尺寸的不放。也有人拿越狱说事。(没iphone,测试不方便,就此放弃)
参考: