您當(dāng)前位置:圖趣網(wǎng)(Tuquu) >> 網(wǎng)頁設(shè)計(jì)教程 >> 移動(dòng)前端 >> 瀏覽設(shè)計(jì)教程

html5 視頻播放解決方案

html5沒學(xué)習(xí)之前總覺的很神秘。近期通過學(xué)習(xí)和研究html5有點(diǎn)成果,特總結(jié)分享給大家。
眾所周知應(yīng)用開發(fā)分兩種:一是原生的native app 二是web app,也就是通過欣賞器訪問的應(yīng)用。
html5在移動(dòng)互聯(lián)時(shí)代,有他獨(dú)到的用武之地,雖然他有許多上風(fēng)但不可能完全徹底庖代原生APP,原生APP開發(fā)成本雖高,但是其優(yōu)秀的用戶體驗(yàn)以及API、已有的開發(fā)生態(tài)鏈等,會(huì)保持其長期的茂盛兩種APP會(huì)互補(bǔ)共存。學(xué)習(xí)html5的成本不算高,H5本質(zhì)是html但凡做過web開發(fā)的程序員,稍加學(xué)習(xí)就能掌握。

這里重要研究的是通過應(yīng)用html5來解決視頻播放的題目。Adobe公司由于戰(zhàn)略錯(cuò)誤,忽視了移動(dòng)互聯(lián)這塊,移動(dòng)終端對flash支撐并不好,分外是蘋果終端都不支撐flash(蘋果電腦和筆記本是支撐flash)。pc端多數(shù)應(yīng)用的flash,
流媒體又能有很好的交互體驗(yàn)。為了移動(dòng)端也能播放表現(xiàn),我們深入學(xué)習(xí)研究了html5,行使html5不用插件直接播放視頻,還能跨平臺來實(shí)現(xiàn)播放。

一、html5技術(shù)上風(fēng)
1 關(guān)于視頻不用插件播放,點(diǎn)擊就能看
2 跨平臺、好升級、好維護(hù),開發(fā)成原形對原生APP低許多
3 對移動(dòng)的優(yōu)秀支撐,支撐手勢,本地存儲和視頻續(xù)播等,通過H5就可以把本身的網(wǎng)站移動(dòng)化。
4 更為簡潔的代碼,更好的交互
5 支撐游戲開發(fā)


二、html5播放視頻
pc端照舊用flash播放,但移動(dòng)端通過html5體例來做。
而html5的video標(biāo)簽只支撐mp4、webm、ogg三種格式.目前所有主流欣賞器最新版本都支撐html5(除了Opera)

H.264已經(jīng)霸占視頻市場的80%。假如移動(dòng)應(yīng)用視頻,建議編譯成264格式,有好的高壓縮比、高畫質(zhì)。
H.264則是由兩個(gè)組織聯(lián)合組建的聯(lián)合視頻組(JVT)共同制訂的新數(shù)字視頻編碼標(biāo)準(zhǔn),它既是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。

三、html5代碼DEMO

<!doctype html>
<html>
    <meta http-equiv=Content-Type content="text/html;charset=utf-8">
    <script src="&#106avascript/jquery-1.7.2.min.js"></script>
    <script src="&#106avascript/jsPlayer.js"></script>
    <script src="&#106avascript/dtooltip-min.js"></script>
    <link href="CSS/play.css?var=1121" rel="stylesheet" type="text/css">
     
<script type="text/&#106avascript">
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>測試移動(dòng)終端</title>
</head>
<body>
<div id="a"><p>這是安卓手機(jī)</p></div>
<div id="b"><p>這是蘋果手機(jī)</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>
    <!--播放器代碼結(jié)束-->
</div>
 
</body>
 
</html>

四、html5發(fā)展情況
Html5欣賞器支撐情況
絕大多數(shù)欣賞器支撐html5(除了opera mini)

數(shù)據(jù)來源:http://caniuse.com/#cats=HTML5

mp4視頻支撐情況
主流都支撐mp4(除了opera)

數(shù)據(jù)來源:http://caniuse.com/#feat=video

[教程作者:佚名]
免責(zé)聲明:本站文章系圖趣網(wǎng)整理發(fā)布,如需轉(zhuǎn)載,請注明出處,素材資料僅供個(gè)人學(xué)習(xí)與參考,請勿用于商業(yè)用途!
本文地址:http://pkvc.cn/tutorial/wd3327.html
HTML5不支撐frameset的兩種解決方法
HTML5頭部<meta>標(biāo)簽的一些常用信息小結(jié)
圖趣網(wǎng)微信
建議反饋
×