真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何利用HTML5制作一個(gè)好看的視頻播放器

這篇文章將為大家詳細(xì)講解有關(guān)如何利用HTML5制作一個(gè)好看的視頻播放器,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)是專業(yè)的奉節(jié)網(wǎng)站建設(shè)公司,奉節(jié)接單;提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行奉節(jié)網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

一、視頻的格式

目前比較主流和使用比較的的視頻格式主要有:avi、rmvb、wmv、mpeg4、ogg、webm。這些視頻都是由視頻、音頻、編碼格式三部分組成的。在HTML5中,根據(jù)瀏覽器的不同,目前擁有多套不同的編碼器:

H.264(個(gè)人不看好):這個(gè)編碼器是蘋果系統(tǒng)包括蘋果手機(jī)中的編碼器,擁有專利的視頻編碼器。在編碼及傳輸過程中的任何部分都可能需要收取專利費(fèi)。因此Safari(蘋果的瀏覽器)和Intenet Explorer支持該編碼器,但是在開源已經(jīng)成為大勢(shì)的當(dāng)下,還在瀏覽器中收取專利費(fèi),個(gè)人實(shí)在是不看好啊。

Theora:這是一個(gè)不受專利限制的編碼格式,并且對(duì)所有等級(jí)的編碼、傳輸以及回放免費(fèi)的視頻編碼器。Chrome、Firefox以及Opera支持該編碼器。

VP8:該視頻編碼器與Theora相似,但是其擁有者是Google公司,Google公司已經(jīng)開源,因此不需要專利費(fèi)。Chrome、Firefox以及Opera支持該編碼器。

AAC:音頻編碼器,與H.264相同,該音頻編碼器擁有專利限制,Safari、Chrome和Internet Explorer支持該音頻編碼器。

MP3:也是一個(gè)專利技術(shù),Safari、Chrome和Internet Explorer支持該音頻編碼器。

PCM:存儲(chǔ)由模擬數(shù)字轉(zhuǎn)換器編碼的完整數(shù)據(jù),在音頻CD上存儲(chǔ)數(shù)據(jù)的一種格式。是以中國(guó)無損編碼器,它的文件大小一般是AAC和MP3文件的幾倍,Safari、Firefox和Internet Explorer支持該音頻編碼器。

Vorbis:文件擴(kuò)展名為.ogg,有時(shí)候也被稱為Ogg Vorbis,該音頻編碼器不受專利保護(hù),因此版權(quán)免費(fèi)。支持的瀏覽器包括Chrome、Firefox和Opera.

主流瀏覽器和設(shè)備支持的視頻和音頻

如何利用HTML5制作一個(gè)好看的視頻播放器

二、HTML5中的屬性

在html5中可以使用

video標(biāo)簽中有很多屬性,例如controls屬性可以控制是否有控制臺(tái)。

  
    瀏覽器不支持HTML5的視頻播放功能  

從上面的視頻格式中我們可以看到不同的瀏覽器支持不同的視頻格式,這樣我們可以采用標(biāo)簽指定多種格式的視頻,默認(rèn)情況下瀏覽器會(huì)自動(dòng)啟動(dòng)下載文件來確定其類型。

  
      
      

三、制作視頻播放器

index.html

  
  
  
Demo 1 | Custom HTML5 Video Controls with jQuery  
  
  
  
  
  
  
  
  
  
  
  
  
       

Custom HTML5 Video Controls with jQuery

           BACK TO ARTICLE ?           Visit inWebson.com ?       

       

  
                          

Demo 1

       

Custom HTML5 Video Controls

                                                        

Your browser does not support the video tag.

              This is HTML5 video with custom controls

                                                                                         

                                   /                                    

           

                                     

               

               Speed: 

               x1

               x3

               

               

                                                 

               

           

                  

       

  

                            
                   DEMO 1               
  • DEMO 2
  •            
           

                      
       ? 2011 inWebson.com.      Design by Kenny Ooi.      Powered by HTML5 and      jQuery.  
     

style.css

/* video container */  
.videoContainer{  
    width:600px;  
    height:350px;  
    position:relative;  
    overflow:hidden;  
    background:#000;  
    color:#ccc;  
}  
  
/* video caption css */  
.caption{  
    display:none;  
    position:absolute;  
    top:0;  
    left:0;  
    width:100%;  
    padding:10px;  
    color:#ccc;  
    font-size:20px;  
    font-weight:bold;  
    box-sizing: border-box;  
    -ms-box-sizing: border-box;  
    -webkit-box-sizing: border-box;  
    -moz-box-sizing: border-box;  
    background: #1F1F1F; /* fallback */  
    background:-moz-linear-gradient(top,#242424 50%,#1F1F1F 50%,#171717 100%);  
    background:-webkit-linear-gradient(top,#242424 50%,#1F1F1F 50%,#171717 100%);  
    background:-o-linear-gradient(top,#242424 50%,#1F1F1F 50%,#171717 100%);  
}  
  
/*** VIDEO CONTROLS CSS ***/  
/* control holder */  
.control{  
    background:#333;  
    color:#ccc;  
    position:absolute;  
    bottom:0;  
    left:0;  
    width:100%;  
    z-index:5;  
    display:none;  
}  
/* control top part */  
.topControl{  
    height:11px;  
    border-bottom:1px solid #404040;  
    padding:1px 5px;  
    background:#1F1F1F; /* fallback */  
    background:-moz-linear-gradient(top,#242424 50%,#1F1F1F 50%,#171717 100%);  
    background:-webkit-linear-gradient(top,#242424 50%,#1F1F1F 50%,#171717 100%);  
    background:-o-linear-gradient(top,#242424 50%,#1F1F1F 50%,#171717 100%);  
}  
/* control bottom part */  
.btmControl{  
    clear:both;  
    background: #1F1F1F; /* fallback */  
    background:-moz-linear-gradient(top,#242424 50%,#1F1F1F 50%,#171717 100%);  
    background:-webkit-linear-gradient(top,#242424 50%,#1F1F1F 50%,#171717 100%);  
    background:-o-linear-gradient(top,#242424 50%,#1F1F1F 50%,#171717 100%);  
}  
.control p.btn {  
    float:left;  
    width:34px;  
    height:30px;  
    padding:0 5px;  
    border-right:1px solid #404040;  
    cursor:pointer;  
}  
.control p.text{  
    font-size:12px;  
    font-weight:bold;  
    line-height:30px;  
    text-align:center;  
    font-family:verdana;  
    width:20px;  
    border:none;  
    color:#777;  
}  
.control p.btnPlay{  
    background:url(control.png) no-repeat 0 0;  
    border-left:1px solid #404040;  
}  
.control p.paused{  
    background:url(control.png) no-repeat 0 -30px;  
}  
.control p.btnStop{  
    background:url(control.png) no-repeat 0 -60px;  
}  
.control p.spdText{  
    border:none;  
    font-size:14px;  
    line-height:30px;  
    font-style:italic;  
}  
.control p.selected{  
    font-size:15px;  
    color:#ccc;  
}  
.control p.sound{  
    background:url(control.png) no-repeat -88px -30px;  
    border:none;  
    float:right;  
}  
.control p.sound2{  
    background:url(control.png) no-repeat -88px -60px !important;  
}  
.control p.muted{  
    background:url(control.png) no-repeat -88px 0 !important;  
}  
.control p.btnFS{  
    background:url(control.png) no-repeat -44px 0;  
    float:right;  
}  
.control p.btnLight{  
    background:url(control.png) no-repeat -44px -60px;  
    border-left:1px solid #404040;  
    float:right;  
}  
.control p.lighton{  
    background:url(control.png) no-repeat -44px -30px !important;  
}  
  
/* PROGRESS BAR CSS */  
/* Progress bar */  
.progress {  
    width:85%;  
    height:10px;  
    position:relative;  
    float:left;  
    cursor:pointer;  
    background: #444; /* fallback */  
    background:-moz-linear-gradient(top,#666,#333);  
    background:-webkit-linear-gradient(top,#666,#333);  
    background:-o-linear-gradient(top,#666,#333);  
    box-shadow:0 2px 3px #333 inset;  
    -moz-box-shadow:0 2px 3px #333 inset;  
    -webkit-box-shadow:0 2px 3px #333 inset;  
    border-radius:10px;  
    -moz-border-radius:10px;  
    -webkit-border-radius:10px;  
}  
.progress span {  
    height:100%;  
    position:absolute;  
    top:0;  
    left:0;  
    display:block;  
    border-radius:10px;  
    -moz-border-radius:10px;  
    -webkit-border-radius:10px;  
}  
.timeBar{  
    z-index:10;  
    width:0;  
    background: #3FB7FC; /* fallback */  
    background:-moz-linear-gradient(top,#A0DCFF 50%,#3FB7FC 50%,#16A9FF 100%);  
    background:-webkit-linear-gradient(top,#A0DCFF 50%,#3FB7FC 50%,#16A9FF 100%);  
    background:-o-linear-gradient(top,#A0DCFF 50%,#3FB7FC 50%,#16A9FF 100%);  
    box-shadow:0 0 1px #fff;  
    -moz-box-shadow:0 0 1px #fff;  
    -webkit-box-shadow:0 0 1px #fff;  
}  
.bufferBar{  
    z-index:5;  
    width:0;  
    background: #777;  
    background:-moz-linear-gradient(top,#999,#666);  
    background:-webkit-linear-gradient(top,#999,#666);  
    background:-o-linear-gradient(top,#999,#666);  
    box-shadow:2px 0 5px #333;  
    -moz-box-shadow:2px 0 5px #333;  
    -webkit-box-shadow:2px 0 5px #333;  
}  
/* time and duration */  
.time{  
    width:15%;  
    float:right;  
    text-align:center;  
    font-size:11px;  
    line-height:12px;  
}  
  
/* VOLUME BAR CSS */  
/* volume bar */  
.volume{  
    position:relative;  
    cursor:pointer;  
    width:70px;  
    height:10px;  
    float:right;  
    margin-top:10px;  
    margin-right:10px;  
}  
.volumeBar{  
    display:block;  
    height:100%;  
    position:absolute;  
    top:0;  
    left:0;  
    background-color:#eee;  
    z-index:10;  
}  
  
/* OTHERS CSS */  
/* video screen cover */  
.loading, #init{  
    position:absolute;  
    top:0;  
    left:0;  
    width:100%;  
    height:100%;  
    background:url(loading.gif) no-repeat 50% 50%;  
    z-index:2;  
    display:none;  
}  
#init{  
    background:url(bigplay.png) no-repeat 50% 50% !important;  
    cursor:pointer;  
}

video.js

$(document).ready(function(){  
    //INITIALIZE  
    var video = $('#myVideo');  
      
    //remove default control when JS loaded  
    video[0].removeAttribute("controls");  
    $('.control').show().css({'bottom':-45});  
    $('.loading').fadeIn(500);  
    $('.caption').fadeIn(500);  
   
    //before everything get started  
    video.on('loadedmetadata', function() {  
        $('.caption').animate({'top':-45},300);  
              
        //set video properties  
        $('.current').text(timeFormat(0));  
        $('.duration').text(timeFormat(video[0].duration));  
        updateVolume(0, 0.7);  
              
        //start to get video buffering data   
        setTimeout(startBuffer, 150);  
              
        //bind video events  
        $('.videoContainer')  
        .append('

')           .hover(function() {               $('.control').stop().animate({'bottom':0}, 500);               $('.caption').stop().animate({'top':0}, 500);           }, function() {               if(!volumeDrag && !timeDrag){                   $('.control').stop().animate({'bottom':-45}, 500);                   $('.caption').stop().animate({'top':-45}, 500);               }           })           .on('click', function() {               $('#init').remove();               $('.btnPlay').addClass('paused');               $(this).unbind('click');               video[0].play();           });           $('#init').fadeIn(200);       });              //display video buffering bar       var startBuffer = function() {           var currentBuffer = video[0].buffered.end(0);           var maxduration = video[0].duration;           var perc = 100 * currentBuffer / maxduration;           $('.bufferBar').css('width',perc+'%');                          if(currentBuffer < maxduration) {               setTimeout(startBuffer, 500);           }       };                //display current video play time       video.on('timeupdate', function() {           var currentPos = video[0].currentTime;           var maxduration = video[0].duration;           var perc = 100 * currentPos / maxduration;           $('.timeBar').css('width',perc+'%');               $('.current').text(timeFormat(currentPos));        });              //CONTROLS EVENTS       //video screen and play button clicked       video.on('click', function() { playpause(); } );       $('.btnPlay').on('click', function() { playpause(); } );       var playpause = function() {           if(video[0].paused || video[0].ended) {               $('.btnPlay').addClass('paused');               video[0].play();           }           else {               $('.btnPlay').removeClass('paused');               video[0].pause();           }       };              //speed text clicked       $('.btnx1').on('click', function() { fastfowrd(this, 1); });       $('.btnx3').on('click', function() { fastfowrd(this, 3); });       var fastfowrd = function(obj, spd) {           $('.text').removeClass('selected');           $(obj).addClass('selected');           video[0].playbackRate = spd;           video[0].play();       };              //stop button clicked       $('.btnStop').on('click', function() {           $('.btnPlay').removeClass('paused');           updatebar($('.progress').offset().left);           video[0].pause();       });              //fullscreen button clicked       $('.btnFS').on('click', function() {           if($.isFunction(video[0].webkitEnterFullscreen)) {               video[0].webkitEnterFullscreen();           }              else if ($.isFunction(video[0].mozRequestFullScreen)) {               video[0].mozRequestFullScreen();           }           else {               alert('Your browsers doesn\'t support fullscreen');           }       });              //light bulb button clicked       $('.btnLight').click(function() {           $(this).toggleClass('lighton');                      //if lightoff, create an overlay           if(!$(this).hasClass('lighton')) {               $('body').append('

');               $('.overlay').css({                   'position':'absolute',                   'width':100+'%',                   'height':$(document).height(),                   'background':'#000',                   'opacity':0.9,                   'top':0,                   'left':0,                   'z-index':999               });               $('.videoContainer').css({                   'z-index':1000               });           }           //if lighton, remove overlay           else {               $('.overlay').remove();           }       });              //sound button clicked       $('.sound').click(function() {           video[0].muted = !video[0].muted;           $(this).toggleClass('muted');           if(video[0].muted) {               $('.volumeBar').css('width',0);           }           else{               $('.volumeBar').css('width', video[0].volume*100+'%');           }       });              //VIDEO EVENTS       //video canplay event       video.on('canplay', function() {           $('.loading').fadeOut(100);       });              //video canplaythrough event       //solve Chrome cache issue       var completeloaded = false;       video.on('canplaythrough', function() {           completeloaded = true;       });              //video ended event       video.on('ended', function() {           $('.btnPlay').removeClass('paused');           video[0].pause();       });          //video seeking event       video.on('seeking', function() {           //if video fully loaded, ignore loading screen           if(!completeloaded) {                $('.loading').fadeIn(200);           }          });              //video seeked event       video.on('seeked', function() { });              //video waiting for more data event       video.on('waiting', function() {           $('.loading').fadeIn(200);       });              //VIDEO PROGRESS BAR       //when video timebar clicked       var timeDrag = false;   /* check for drag event */       $('.progress').on('mousedown', function(e) {           timeDrag = true;           updatebar(e.pageX);       });       $(document).on('mouseup', function(e) {           if(timeDrag) {               timeDrag = false;               updatebar(e.pageX);           }       });       $(document).on('mousemove', function(e) {           if(timeDrag) {               updatebar(e.pageX);           }       });       var updatebar = function(x) {           var progress = $('.progress');                      //calculate drag position           //and update video currenttime           //as well as progress bar           var maxduration = video[0].duration;           var position = x - progress.offset().left;           var percentage = 100 * position / progress.width();           if(percentage > 100) {               percentage = 100;           }           if(percentage < 0) {               percentage = 0;           }           $('.timeBar').css('width',percentage+'%');             video[0].currentTime = maxduration * percentage / 100;       };          //VOLUME BAR       //volume bar event       var volumeDrag = false;       $('.volume').on('mousedown', function(e) {           volumeDrag = true;           video[0].muted = false;           $('.sound').removeClass('muted');           updateVolume(e.pageX);       });       $(document).on('mouseup', function(e) {           if(volumeDrag) {               volumeDrag = false;               updateVolume(e.pageX);           }       });       $(document).on('mousemove', function(e) {           if(volumeDrag) {               updateVolume(e.pageX);           }       });       var updateVolume = function(x, vol) {           var volume = $('.volume');           var percentage;           //if only volume have specificed           //then direct update volume           if(vol) {               percentage = vol * 100;           }           else {               var position = x - volume.offset().left;               percentage = 100 * position / volume.width();           }                      if(percentage > 100) {               percentage = 100;           }           if(percentage < 0) {               percentage = 0;           }                      //update volume bar and video volume           $('.volumeBar').css('width',percentage+'%');               video[0].volume = percentage / 100;                      //change sound icon based on volume           if(video[0].volume == 0){               $('.sound').removeClass('sound2').addClass('muted');           }           else if(video[0].volume > 0.5){               $('.sound').removeClass('muted').addClass('sound2');           }           else{               $('.sound').removeClass('muted').removeClass('sound2');           }                  };          //Time format converter - 00:00       var timeFormat = function(seconds){           var m = Math.floor(seconds/60)<10 ? "0"+Math.floor(seconds/60) : Math.floor(seconds/60);       var s = Math.floor(seconds-(m*60))<10 ? "0"+Math.floor(seconds-(m*60)) :Math.floor(seconds-(m*60));           return m+":"+s;       };   });

關(guān)于“如何利用HTML5制作一個(gè)好看的視頻播放器”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。


網(wǎng)頁名稱:如何利用HTML5制作一個(gè)好看的視頻播放器
路徑分享:http://weahome.cn/article/pdpcpd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部