当前位置: 移动技术网 > IT编程>网页制作>Html5 > html5 视频播放解决方案

html5 视频播放解决方案

2019年07月25日  | 移动技术网IT编程  | 我要评论

html5没学习之前总觉的很神秘。近期通过学习和研究html5有点成果,特总结分享给大家。
众所周知应用开发分两种:一是原生的native app 二是web app,也就是通过浏览器访问的应用。
html5在移动互联时代,有他独到的用武之地,虽然他有很多优势但不可能完全彻底取代原生app,原生app开发成本虽高,但是其良好的用户体验以及api、已有的开发生态链等,会保持其长期的旺盛两种app会互补共存。学习html5的成本不算高,h5本质是html但凡做过web开发的程序员,稍加学习就能掌握。

这里主要研究的是通过应用html5来解决视频播放的问题。adobe公司因为战略错误,忽视了移动互联这块,移动终端对flash支持并不好,特别是苹果终端都不支持flash(苹果电脑和笔记本是支持flash)。pc端多数应用的flash,
流媒体又能有很好的交互体验。为了移动端也能播放显示,我们深入学习研究了html5,利用html5不用插件直接播放视频,还能跨平台来实现播放。

一、html5技术优势
1 关于视频不用插件播放,点击就能看
2 跨平台、好升级、好维护,开发成本相对原生app低很多
3 对移动的良好支持,支持手势,本地存储和视频续播等,通过h5就可以把自己的网站移动化。
4 更为简洁的代码,更好的交互
5 支持游戏开发


二、html5播放视频
pc端还是用flash播放,但移动端通过html5方式来做。
而html5的video标签只支持mp4、webm、ogg三种格式.目前所有主流浏览器最新版本都支持html5(除了opera)

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。

三、html5代码demo

<!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>

四、html5发展情况
html5浏览器支持情况
绝大多数浏览器支持html5(除了opera mini)

数据来源:http://caniuse.com/#cats=html5

mp4视频支持情况
主流都支持mp4(除了opera)

数据来源:http://caniuse.com/#feat=video

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网