1.自己思考
2.查看手册
3.上网搜索
4.与老师,同学讨论解决
<video id="video1" width="500px" height="300px" ></video>
<div id="control">
<div id="duBar">
<div id="proBar"></div>
<div id="preload"></div>
</div>
<button id="videoBtn">播放</button>
</div>
<div id="listnum">
</div>
<button id="nextVideo">next</button>
<button id="circle"></button>
var video1 = document.getElementById("video1");
var videoBtn = document.getElementById("videoBtn");
var ctxt = document.getElementById("ctxt");
var dtxt = document.getElementById("dtxt");
var duBar = document.getElementById("duBar");
var proBar = document.getElementById("proBar");
var dragBtn = document.getElementById("dragBtn");
var preload = document.getElementById("preload");
var nextVideo = document.getElementById("nextVideo");
var listnum = document.getElementById("listnum");
var circle = document.getElementById("circle");
var st;
var videoList = [
{src:"img/婚礼现场.webm",poster:"img/banner.jpg"},
{src:"img/movie.ogg",poster:"img/banner1.jpg"},
{src:"img/婚礼现场.webm",poster:"img/img1.jpg"},
{src:"img/movie.ogg",poster:"img/img6.jpg"},
];
//初始化
var n = 0;
video1.src = videoList[n].src;
video1.poster = videoList[n].poster;
videoBtn.addEventListener("click", viedoControl);
function viedoControl() {
clearInterval(st);
if(videoBtn.innerHTML == "播放") {
video1.play();
videoBtn.innerHTML = "暂停";
} else {
video1.pause();
videoBtn.innerHTML = "播放";
}
st = setInterval(function() {
var current = video1.currentTime;
var duration = video1.duration;
proBar.style.width = current / duration * 450 + "px"; //进度条
var bufferTime = video1.buffered;
var tbuffed = bufferTime.end(bufferTime.length-1);
var buffPro = tbuffed/duration*450;
preload.style.width = buffPro+"px" ; //缓存条
}, 300)
}
function drag(){
var a = false;
duBar.addEventListener("mousedown",function(e){
a = true ;
clearInterval(st);
if(e.clientX < 500){
proBar.style.width = e.clientX - 50 + "px";
video1.currentTime = (e.clientX-50)/450*video1.duration;
}
});
duBar.addEventListener("mousemove",function(e){
if(a){
if(e.clientX < 500){
proBar.style.width = e.clientX - 50 + "px";
video1.currentTime = (e.clientX-50)/450*video1.duration;
}
}
});
window.addEventListener("mouseup",function(e){
if(a){
if(e.clientX < 500){
proBar.style.width = e.clientX - 50 + "px";
}
}
a = false;
});
}
drag();
var circleType = ["列表循环","重复播放","随机播放"];
var m = 0;
circle.innerHTML = circleType[m];
circle.addEventListener("click",function(){
m++;
if(m < 3){
circle.innerHTML = circleType[m];
}else{
m = 0;
circle.innerHTML = circleType[m];
}
})
//下一曲目
nextVideo.addEventListener("click",function(){
if(circle.innerHTML == "重复播放"){
n = n;
}else if(circle.innerHTML == "列表循环"){
n++;
if(n == videoList.length){
n=0;
}
}else if(circle.innerHTML == "随机播放"){
n = Math.floor(Math.random()*videoList.length); //播放进度跟随变化
}
video1.src = videoList[n].src;
video1.poster = videoList[n].poster;
playreset();
videoBtn.addEventListener("click", viedoControl);
});
//重置
function playreset(){
video1.currentTime = 0;
video1.buffered = 0;
videoBtn.innerHTML = "播放";
proBar.style.width = 0 + "px";
}
//生成播放列表
function List(){
var str = "<ul>";
for (var i = 0 ;i < videoList.length ; i++) {
str+="<li>"+videoList[i].src.substr(4).split(".")[0]+"</li>"
}
str+="</ul>";
return str;
}
listnum.innerHTML = List();
//播放列表项目选择
var videoNum = document.getElementsByTagName("li");
for (var j = 0;j < videoNum.length;j++) {
videoNum[j].cool = j;
videoNum[j].onclick = function(){
playreset();
video1.src = videoList[this.cool].src;
video1.poster = videoList[this.cool].poster;
n = this.cool;
}
}