html5 自定義播放器核心代碼
發(fā)布時(shí)間:2013-12-20 16:46:00 作者:佚名
我要評(píng)論

HTML5提供有新的video標(biāo)簽,可以不用編程直接播放video,只需要寫幾行簡(jiǎn)單的代碼, 就可以自定義播放器
網(wǎng)頁(yè)html
<body style="background-color:#8EEE5EE;">
<section id="skin">
<video id="myMovie" width="640" height="360">
<source src="videos/Introduction.mp4">
</video>
<nav>
<div id="buttons">
<button type="button" id="playButton">Play</button>
</div>
<div id="defaultBar">
<div id="progressBar"></div>
</div>
<div style="clear:both"></div>
</nav>
</section>
</body>
css樣式
body{
text-align:center;
}
header,section,footer,aside,nav,article,hgroup{
display:block;
}
#skin{
width:700px;
margin:10px auto;
padding:5px;
background:red;
border:4px solid black;
border-radius:20px;
}
nav{
margin:5px 0px;
}
#buttons{
float:left;
width:70px;
height:22px;
}
#defaultBar{
position:relative;
float:left;
width:600px;
height:14px;
padding:4px;
border:1px solid black;
background:yellow;
}
/*progressBar在defaultBar內(nèi)部*/
#progressBar{
position:absolute;
width:0px; /*使用javascript控制變化*/
height:14px; /*和defaultBar高度相同*/
background:blue;
}
javascript代碼
function doFisrt()
{
barSize=600; //注意不要使用px單位,且不要用var,是全局變量
myMovie=document.getElementById('myMovie');
playButton=document.getElementById('playButton');
bar=document.getElementById('defaultBar');
progressBar=document.getElementById('progressBar');
playButton.addEventListener('click',playOrPause,false); //第三個(gè)參數(shù)總是false, Register the event handler for the bubbling phase.
bar.addEventListener('click',clickedBar,false);
}
//控制movie播放和停止
function playOrPause(){
if(!myMovie.paused && !myMovie.ended){
myMovie.pause();
playButton.innerHTML='Play';
window.clearInterval(updatedBar);
}else{
myMovie.play();
playButton.innerHTML='pause';
updatedBar=setInterval(update,500);
}
}
//控制進(jìn)度條的動(dòng)態(tài)顯示
function update(){
if(!myMovie.ended){
var size=parseInt(myMovie.currentTime*barSize/myMovie.duration);
progressBar.style.width=size+'px';
}else{
progressBar.style.width='0px';
playButton.innerHTML='Play';
window.clearInterval(updatedBar);
}
}
//鼠標(biāo)點(diǎn)擊進(jìn)度條控制方法
function clickedBar(e){
if(!myMovie.paused && !myMovie.ended){
var mouseX=e.pageX-bar.offsetLeft;
var newtime=mouseX*myMovie.duration/barSize; //new starting time
myMovie.currentTime=newtime;
progressBar.style.width=mouseX+'px';
window.clearInterval(updatedBar);
}
}
window.addEventListener('load',doFisrt,false);
好東西啊,摘了代碼部分
復(fù)制代碼
代碼如下:<body style="background-color:#8EEE5EE;">
<section id="skin">
<video id="myMovie" width="640" height="360">
<source src="videos/Introduction.mp4">
</video>
<nav>
<div id="buttons">
<button type="button" id="playButton">Play</button>
</div>
<div id="defaultBar">
<div id="progressBar"></div>
</div>
<div style="clear:both"></div>
</nav>
</section>
</body>
css樣式
復(fù)制代碼
代碼如下:body{
text-align:center;
}
header,section,footer,aside,nav,article,hgroup{
display:block;
}
#skin{
width:700px;
margin:10px auto;
padding:5px;
background:red;
border:4px solid black;
border-radius:20px;
}
nav{
margin:5px 0px;
}
#buttons{
float:left;
width:70px;
height:22px;
}
#defaultBar{
position:relative;
float:left;
width:600px;
height:14px;
padding:4px;
border:1px solid black;
background:yellow;
}
/*progressBar在defaultBar內(nèi)部*/
#progressBar{
position:absolute;
width:0px; /*使用javascript控制變化*/
height:14px; /*和defaultBar高度相同*/
background:blue;
}
javascript代碼
復(fù)制代碼
代碼如下:function doFisrt()
{
barSize=600; //注意不要使用px單位,且不要用var,是全局變量
myMovie=document.getElementById('myMovie');
playButton=document.getElementById('playButton');
bar=document.getElementById('defaultBar');
progressBar=document.getElementById('progressBar');
playButton.addEventListener('click',playOrPause,false); //第三個(gè)參數(shù)總是false, Register the event handler for the bubbling phase.
bar.addEventListener('click',clickedBar,false);
}
//控制movie播放和停止
function playOrPause(){
if(!myMovie.paused && !myMovie.ended){
myMovie.pause();
playButton.innerHTML='Play';
window.clearInterval(updatedBar);
}else{
myMovie.play();
playButton.innerHTML='pause';
updatedBar=setInterval(update,500);
}
}
//控制進(jìn)度條的動(dòng)態(tài)顯示
function update(){
if(!myMovie.ended){
var size=parseInt(myMovie.currentTime*barSize/myMovie.duration);
progressBar.style.width=size+'px';
}else{
progressBar.style.width='0px';
playButton.innerHTML='Play';
window.clearInterval(updatedBar);
}
}
//鼠標(biāo)點(diǎn)擊進(jìn)度條控制方法
function clickedBar(e){
if(!myMovie.paused && !myMovie.ended){
var mouseX=e.pageX-bar.offsetLeft;
var newtime=mouseX*myMovie.duration/barSize; //new starting time
myMovie.currentTime=newtime;
progressBar.style.width=mouseX+'px';
window.clearInterval(updatedBar);
}
}
window.addEventListener('load',doFisrt,false);
好東西啊,摘了代碼部分
相關(guān)文章
HTML5 video標(biāo)簽(播放器)學(xué)習(xí)筆記(二):播放控制
這篇文章主要介紹了HTML5 video標(biāo)簽(播放器)學(xué)習(xí)筆記(二):播放控制,本文講解了獲取影片總時(shí)長(zhǎng)、播放、暫停、獲取影片的播放時(shí)間和設(shè)置播放點(diǎn)、音量的獲取和設(shè)置等內(nèi)容,2015-04-24HTML5 video標(biāo)簽(播放器)學(xué)習(xí)筆記(一):使用入門
這篇文章主要介紹了HTML5 video標(biāo)簽(播放器)學(xué)習(xí)筆記(一):使用入門,本文講解了使用標(biāo)簽、比如播放視頻的路徑、是否顯示控制條、讓視頻自動(dòng)播放或自動(dòng)加載、讓播放器規(guī)2015-04-24- 本期的教程主要是為了展示Html5新增的2014-12-30
html5實(shí)現(xiàn)完美兼容各大瀏覽器的播放器
這篇文章主要介紹了html5實(shí)現(xiàn)完美兼容各大瀏覽器的播放器,需要的朋友可以參考下2014-12-26- 這篇文章主要介紹了html5中 media(播放器)的api使用指南,需要的朋友可以參考下2014-12-26
html5 音樂(lè)播放器 audio 標(biāo)簽使用概述
本文為大家詳細(xì)介紹下html5 音樂(lè)播放器 audio 標(biāo)簽的使用概述,喜歡html5的朋友可以參考下哈,希望對(duì)大家有所幫助2013-07-15HTML5 MiranaVideo播放器 (代碼開(kāi)源)
HTML5 MiranaVideo播放器,基于yui代碼比較大。2010-06-11從零實(shí)現(xiàn)一個(gè)自定義html5播放器的示例代碼
本篇文章主要介紹了從零實(shí)現(xiàn)一個(gè)自定義html5播放器的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-01