html5視頻播放解決方案

關鍵詞:html5  nativeapp webapp mp4 H.264

html5沒學習以前總覺的很神祕。近期經過學習和研究html5有點成果,特總結分享給你們。
衆所周知應用開發分兩種:一是原生的native app 二是web app,也就是經過瀏覽器訪問的應用。
html5在移動互聯時代,有他獨到的用武之地,雖然他有不少優點但不可能徹底完全取代原生APP,原生APP開發成本雖高,可是其良好的用戶體驗以及API、已有的開發生態鏈等,會保持其長期的旺盛兩種APP會互補共存。學習html5的成本不算高,H5本質是html但凡作過web開發的程序員,稍加學習就能掌握。

這裏主要研究的是經過應用html5來解決視頻播放的問題。Adobe公司由於戰略錯誤,忽視了移動互聯這塊,移動終端對flash支持並很差,特別是蘋果終端都不支持flash(蘋果電腦和筆記本是支持flash)。pc端多數應用的flash,
流媒體又能有很好的交互體驗。爲了移動端也能播放顯示,咱們深刻學習研究了html5,利用html5不用插件直接播放視頻,還能跨平臺來實現播放。

1、html5技術優點
1 關於視頻不用插件播放,點擊就能看
2 跨平臺、好升級、好維護,開發成本相對原生APP低不少
3 對移動的良好支持,支持手勢,本地存儲和視頻續播等,經過H5就能夠把本身的網站移動化。
4 更爲簡潔的代碼,更好的交互
5 支持遊戲開發javascript


2、html5播放視頻
pc端仍是用flash播放,但移動端經過html5方式來作。
而html5的video標籤只支持mp四、webm、ogg三種格式.目前全部主流瀏覽器最新版本都支持html5(除了Opera)css

H.264已經佔領視頻市場的80%。若是移動應用視頻,建議編譯成264格式,有好的高壓縮比、高畫質。
H.264則是由兩個組織聯合組建的聯合視頻組(JVT)共同制定的新數字視頻編碼標準,它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高級視頻編碼(Advanced Video Coding,AVC)的第10 部分。所以,不管是MPEG-4 AVC、MPEG-4 Part 10,仍是ISO/IEC 14496-10,都是指H.264。

3、html5代碼DEMOhtml

<!doctype html>
<html>
    <meta http-equiv=Content-Type content="text/html;charset=utf-8">
    <script src="JavaScript/jquery-1.7.2.min.js"></script>
    <script src="JavaScript/jsPlayer.js"></script>
    <script src="JavaScript/dtooltip-min.js"></script>
    <link href="CSS/play.css?var=1121" rel="stylesheet" type="text/css">
    
<script type="text/javascript">
function browserRedirect() { 
var sUserAgent= navigator.userAgent.toLowerCase(); 
var bIsIpad= sUserAgent.match(/ipad/i) == "ipad"; 
var bIsIphoneOs= sUserAgent.match(/iphone os/i) == "iphone os"; 
var bIsMidp= sUserAgent.match(/midp/i) == "midp"; 
var bIsUc7= sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4"; 
var bIsUc= sUserAgent.match(/ucweb/i) == "ucweb"; 
var bIsAndroid= sUserAgent.match(/android/i) == "android"; 
var bIsCE= sUserAgent.match(/windows ce/i) == "windows ce"; 
var bIsWM= sUserAgent.match(/windows mobile/i) == "windows mobile"; 


if(bIsAndroid){
document.getElementById("a").style.display="block";
document.getElementById("b").style.display="none";
document.getElementById("c").style.display="none";
document.getElementById("d").style.display="none";
}
else if (bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsCE || bIsWM) { 
document.getElementById("b").style.display="block";
document.getElementById("d").style.display="none";
document.getElementById("a").style.display="none";
document.getElementById("c").style.display="none";
} else if(bIsIpad) { 
document.getElementById("c").style.display="block";
document.getElementById("a").style.display="none";
document.getElementById("b").style.display="none";
document.getElementById("d").style.display="none";

} 
else { 
document.getElementById("d").style.display="block";
document.getElementById("a").style.display="none";
document.getElementById("b").style.display="none";
document.getElementById("c").style.display="none";

}
} 
window.onload=function(){browserRedirect();}

    $(document).ready(
                function(){
                    var ps=new jsPlayer("700","500","myVideo");
                }
        );
</script> 

    
<head>
<title>測試移動終端</title>
</head>
<body>
<div id="a"><p>這是安卓手機</p></div>
<div id="b"><p>這是蘋果手機</p></div>
<div id="c"><p>這是ipad</p></div>
<div id="d"><p>這是電腦</p></div>
<div style="width:700px;margin:auto;">
    <!--播放器代碼開始-->
    <div class="playContent">
        <div class="playScreen">
            <video id="myVideo">
                <source src="Movie/th264.mp4" type="video/mp4">
            </video>
        </div>
        <div class="proLines">
            <div id="origin" class="arial">00:00:00</div>
            <div class="line">
                <div class="isPlayLine">
                    <div class="currentCircle">

                    </div>
                </div>
            </div>
            <div id="duration" class="arial"></div>
        </div>
        <div class="playBars">
            <div class="prevBar"><img src="Images/prev.jpg" border="0" id="prev"></div>
            <div class="startBar"><img src="Images/stop.jpg" border="0" id="imgStatus"></div>
            <div class="nextBar"><img src="Images/next.jpg" border="0" id="next"></div>
            <div class="voiceContent">
                <div class="voice">
                    <img src="Images/voice.jpg" id="voiceImg" border="0">
                </div>
                <div class="voiceline">
                    <div class="voicekuai"></div>
                </div>
            </div>
        </div>
    </div>
    <!--播放器代碼結束-->
</div>

</body>

</html>

 

 4、html5發展狀況
Html5瀏覽器支持狀況
絕大多數瀏覽器支持html5(除了opera mini)

數據來源:http://caniuse.com/#cats=HTML5

mp4視頻支持狀況
主流都支持mp4(除了opera)


數據來源:http://caniuse.com/#feat=video

參考資料:
H.264贏下視頻格式大戰已十拿八穩,五分之四的視頻採用該格式
http://www.36kr.com/p/70116.html

HTML5視頻方案:支持iPad Safari、Firefox、Chrome、IE9876
http://www.cnblogs.com/sink_cup/archive/2011/04/21/html5_video_ipad_firefox_chrome_ie9876_flash.html

各大瀏覽器 Safari、Chrome、Firefox ,IE,Opera對HTML5的video的支持
http://www.deepleo.com/archives/636
最新版本的 Safari、Chrome、Firefox 以及 Opera 支持某些 HTML5 特性。Internet Explorer 9 將支持某些 HTML5 特性。

手機瀏覽器HTML5支持狀況調查
http://www.williamlong.info/archives/3075.html

如何檢查用戶瀏覽器是否支持HTML5 video :
http://www.deepleo.com/archives/636

TUP系列活動第八期:HTML5技術應用分享
http://tech.sina.com.cn/it/2011-03-22/19465317662.shtml

分析優酷HTML5地址
http://blog.xiaohai.co/archives/youku-html5/

http://m.youku.com/
http://labs.3g.youku.com/ipad/ 優酷開放HTML5
優酷移動端網站的頁面設計更適合手機瀏覽器觀看,簡潔大氣、節目信息全面。因爲Html5技術的大力應用,節省本地資源之餘,也不用加載Flash插件,點擊視頻就能迅速觀看。
且完美的實現了即時更新,用戶不再須要管理應用程序,從新下載,有任何功能應用的更新,只需打開瀏覽器,登陸後便能輕鬆實現。
同時,利用全面支持Html5的優酷移動端網站,也具備自動續播功能,即用戶能夠訪問以遠程方式存儲在「雲」中的各類內容,不受位置和設備的限制,隨時隨地享受本身鍾愛的視頻節目。

html5

相關文章
相關標籤/搜索