一個不錯的html視頻播放器兼容主流瀏覽器
發(fā)布時間:2014-05-08 10:42:22 作者:佚名
我要評論

html5的video標簽是個好東西,可惜就是兼容性差了點,不過html5畢竟是趨勢,所以果斷還是在這方面下功夫了,下面將解決方法與大家分享下
最近工作上的需求需要對移動客戶端上發(fā)送的視頻在網(wǎng)頁上播放,and 上傳視頻并在網(wǎng)頁上播放(例如上傳教學視頻或者動態(tài)分享等)(博主碎碎念:移動客戶端上傳的你不會用手機的播放器看啊,網(wǎng)頁上上傳你不會上傳到y(tǒng)ouku或者youtube等各大知名網(wǎng)站上上傳然后在自己的網(wǎng)站上直接引用鏈接啊,還不占服務器帶寬,經(jīng)濟又實惠有木有?。。。?。
多媒體的上傳和一般的文件上傳也沒什么區(qū)別,這邊就不多加贅述了,不了解的可以到http://www.w3school.com.cn/php/php_file_upload.asp這邊了解一下。
視頻截圖是在服務端做的,還是使用ffmpeg,目前還是很穩(wěn)定。
開始的時候想仿照下youku這種專業(yè)的視頻網(wǎng)站,發(fā)現(xiàn)他們都是flash實現(xiàn)的,可是博主對flash七竅通了六竅--一竅不通(呵呵呵呵。。),再加上貌似youtube都開始其他嘗試了,所以果斷就放棄在這方面的探索。
在投入google的懷抱半天后,終于趕腳貌似html5的video標簽是個好東西,可惜就是兼容性差了點,不過html5畢竟是趨勢,所以果斷還是在這方面下功夫了。(博主碎碎念:播放一個視頻只要一個標簽就全搞定了,不用他以為我傻啊。。呵呵呵呵)
花費了1個小時的搜索,發(fā)現(xiàn)在http://www.w3school.com.cn/html/html_video.asp這里提供了一種解決方法:
<video width="320" height="240" controls="controls">
<source src="movie.mp4" type="video/mp4" />
<source src="movie.ogg" type="video/ogg" />
<source src="movie.webm" type="video/webm" />
<object data="movie.mp4" width="320" height="240">
<embed src="movie.swf" width="320" height="240" />
</object>
</video>
目測這種方式應該可以兼容一大部分情況了。
可是我們無法阻止用戶上傳的視頻格式,也無法左右用戶使用的瀏覽器類型,而且用戶只會上傳一種視頻格式,但是各個瀏覽支持的視頻的格式不一致(萬惡的瀏覽器。。),基于此種想法,要是有一個可以兼容所有瀏覽器所有視頻格式而又外表美觀可控性強的插件該多好啊。理想是美好的現(xiàn)實是骨感的。不過通過長時間的google還是發(fā)現(xiàn)了一個可以讓主流瀏覽器兼容vedio標簽的js插件http://html5media.googlecode.com/svn/trunk/src/html5media.min.js。
在web上播放視頻還可以使用兩種方式 內(nèi)聯(lián)視頻(借助img標簽,好奇怪只有ie支持這種模式而且一般不開啟) 和 使用助手。所以我們可以借助一些助手來實現(xiàn)上面不支持的類型視頻文件的播放(例如:quicktime)
綜合以上兩點的視頻播放代碼如下:
function showVideo(o,s,w, h, t){ //t文件格式
var _html = '';
if($.inArray(t, ['ogg', 'mp4', 'webm']) >= 0){ //html5 surport
var _doc=document.getElementsByTagName('head')[0];
var script=document.createElement('script');
script.setAttribute('type','text/javascript');
script.setAttribute('src','http://html5media.googlecode.com/svn/trunk/src/html5media.min.js');
_doc.appendChild(script);
script.onload=script.onreadystatechange=function(){
if(!this.readyState||this.readyState=='loaded'||this.readyState=='complete'){
_html = '<video src="'+s+'" width="'+w+'" height="'+h+'" controls autobuffer >';
_html += '</video>';
$(o).css({"width":w+'px', 'height':h+'px', 'cursor':'default'});
$(o).html(_html);
}
script.onload=script.onreadystatechange=null;
}
}else{ //other like 3gp
_html += '<object width="'+w+'" height="'+h+'" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab">';
_html += '<param name="src" value="'+s+'">';
_html += '<param name="controller" value="true">';
_html += '<param name="type" value="video/quicktime">';
_html += '<param name="autoplay" value="false">';
_html += '<param name="target" value="myself">';
_html += '<param name="bgcolor" value="black">';
_html += '<param name="pluginspage" value="http://www.apple.com/quicktime/download/index.html">';
_html += '<embed src="'+s+'" width="'+w+'" height="'+h+'" controller="true" autoplay="false" align="middle" bgcolor="black" target="myself" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/index.html"></embed>';
_html += '</object>';
$(o).css({"width":w+'px', 'height':h+'px', 'cursor':'default'});
$(o).html(_html);
}
}
多媒體的上傳和一般的文件上傳也沒什么區(qū)別,這邊就不多加贅述了,不了解的可以到http://www.w3school.com.cn/php/php_file_upload.asp這邊了解一下。
視頻截圖是在服務端做的,還是使用ffmpeg,目前還是很穩(wěn)定。
開始的時候想仿照下youku這種專業(yè)的視頻網(wǎng)站,發(fā)現(xiàn)他們都是flash實現(xiàn)的,可是博主對flash七竅通了六竅--一竅不通(呵呵呵呵。。),再加上貌似youtube都開始其他嘗試了,所以果斷就放棄在這方面的探索。
在投入google的懷抱半天后,終于趕腳貌似html5的video標簽是個好東西,可惜就是兼容性差了點,不過html5畢竟是趨勢,所以果斷還是在這方面下功夫了。(博主碎碎念:播放一個視頻只要一個標簽就全搞定了,不用他以為我傻啊。。呵呵呵呵)
花費了1個小時的搜索,發(fā)現(xiàn)在http://www.w3school.com.cn/html/html_video.asp這里提供了一種解決方法:
復制代碼
代碼如下:<video width="320" height="240" controls="controls">
<source src="movie.mp4" type="video/mp4" />
<source src="movie.ogg" type="video/ogg" />
<source src="movie.webm" type="video/webm" />
<object data="movie.mp4" width="320" height="240">
<embed src="movie.swf" width="320" height="240" />
</object>
</video>
目測這種方式應該可以兼容一大部分情況了。
可是我們無法阻止用戶上傳的視頻格式,也無法左右用戶使用的瀏覽器類型,而且用戶只會上傳一種視頻格式,但是各個瀏覽支持的視頻的格式不一致(萬惡的瀏覽器。。),基于此種想法,要是有一個可以兼容所有瀏覽器所有視頻格式而又外表美觀可控性強的插件該多好啊。理想是美好的現(xiàn)實是骨感的。不過通過長時間的google還是發(fā)現(xiàn)了一個可以讓主流瀏覽器兼容vedio標簽的js插件http://html5media.googlecode.com/svn/trunk/src/html5media.min.js。
在web上播放視頻還可以使用兩種方式 內(nèi)聯(lián)視頻(借助img標簽,好奇怪只有ie支持這種模式而且一般不開啟) 和 使用助手。所以我們可以借助一些助手來實現(xiàn)上面不支持的類型視頻文件的播放(例如:quicktime)
綜合以上兩點的視頻播放代碼如下:
復制代碼
代碼如下:function showVideo(o,s,w, h, t){ //t文件格式
var _html = '';
if($.inArray(t, ['ogg', 'mp4', 'webm']) >= 0){ //html5 surport
var _doc=document.getElementsByTagName('head')[0];
var script=document.createElement('script');
script.setAttribute('type','text/javascript');
script.setAttribute('src','http://html5media.googlecode.com/svn/trunk/src/html5media.min.js');
_doc.appendChild(script);
script.onload=script.onreadystatechange=function(){
if(!this.readyState||this.readyState=='loaded'||this.readyState=='complete'){
_html = '<video src="'+s+'" width="'+w+'" height="'+h+'" controls autobuffer >';
_html += '</video>';
$(o).css({"width":w+'px', 'height':h+'px', 'cursor':'default'});
$(o).html(_html);
}
script.onload=script.onreadystatechange=null;
}
}else{ //other like 3gp
_html += '<object width="'+w+'" height="'+h+'" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab">';
_html += '<param name="src" value="'+s+'">';
_html += '<param name="controller" value="true">';
_html += '<param name="type" value="video/quicktime">';
_html += '<param name="autoplay" value="false">';
_html += '<param name="target" value="myself">';
_html += '<param name="bgcolor" value="black">';
_html += '<param name="pluginspage" value="http://www.apple.com/quicktime/download/index.html">';
_html += '<embed src="'+s+'" width="'+w+'" height="'+h+'" controller="true" autoplay="false" align="middle" bgcolor="black" target="myself" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/index.html"></embed>';
_html += '</object>';
$(o).css({"width":w+'px', 'height':h+'px', 'cursor':'default'});
$(o).html(_html);
}
}
相關文章
- 這篇文章主要介紹了實現(xiàn)簡易html視頻播放器的方法,H5創(chuàng)建視頻播放器很簡單,您只需要添加一些H5的標簽即可創(chuàng)建出炫酷的播放器2018-05-08