H5 video标签视频加载存在的问题
客户发现上传的视频无法播放,然后主管让我解决这个问题,这个页面不是我负责的,我看了代码,发现视频用的h5标签video标签加载视频。我看了没问题,然后
我先用ie浏览器打开,视频加载没问题。然后我给主管说没问题啊,主管说他也不知道,让我再看看,肯定有问题。然后我让旁边的同事打开,旁边的同事说无法播放。
我看了一下,他原来用的是谷歌浏览器,我才知道video标签原来存在浏览器兼容问题。
我百度了一下,找到了解决办法:
1 <video controls="controls" width="500px" height="300px" preload="metadata"> 2 //火狐 3 <source src="video/FF4.ogv" type="video/ogg"> 4 //谷歌 5 <source src="video/FF4.webm" type="video/webm"> 6 //ie 7 <source src="video/FF4.mp4" type="video/mp4"> 8 </video>
这样就解决兼容问题。
如果还不行加一下这个兼容插件:
<script src="http://html5media.googlecode.com/svn/trunk/src/html5media.min.js"></script>
但是又有一个新问题出现,ie浏览器会显示三个视频,一个可以播放,另外两个无法播放。
所以这会就要判断用户用的是哪个浏览器了。
1 function isBrowser() { 2 var userAgent = navigator.userAgent; 3 //微信内置浏览器 4 if(userAgent.match(/MicroMessenger/i) == 'MicroMessenger') { 5 return "MicroMessenger"; 6 } 7 //QQ内置浏览器 8 else if(userAgent.match(/QQ/i) == 'QQ') { 9 return "QQ"; 10 } 11 //Chrome 12 else if(userAgent.match(/Chrome/i) == 'Chrome') { 13 return "Chrome"; 14 } 15 //Opera 16 else if(userAgent.match(/Opera/i) == 'Opera') { 17 return "Opera"; 18 } 19 //Firefox 20 else if(userAgent.match(/Firefox/i) == 'Firefox') { 21 return "Firefox"; 22 } 23 //Safari 24 else if(userAgent.match(/Safari/i) == 'Safari') { 25 return "Safari"; 26 } 27 //IE 28 else if(!!window.ActiveXObject || "ActiveXObject" in window) { 29 return "IE"; 30 } 31 else { 32 return "未定义:"+userAgent; 33 } 34 }
在对应的浏览器下播放对应的视频格式就行了。