1. 程式人生 > >canvas自定義編輯器

canvas自定義編輯器

// 獲取視訊資訊 var oVideo = document.querySelector('#video'); // 獲取播放暫停按鈕 var oStopToP = document.querySelector('.stopToP'); var oPlayToS = document.querySelector('.playToS'); // 獲取時間 var oOverTime = document.querySelector('.overTime'); var oAllTime = document.querySelector('.allTime'
); // 播放進度條 var oProgress = document.querySelector('.progressVideo'); var oOver = document.querySelector('.overVideo'); // 時間進度條 var oProgressA = document.querySelector('.progressAudio'); var oOverA = document.querySelector('.overAudio'); // 全屏 var ofullScreen = document.querySelector('.fullScreen'
); // 所有視訊播放(暫停)的前提條件就是視訊可播放 oVideo.addEventListener('canplay',function(){ oVideo.removeEventListener('canplay', arguments.callee); // 點選暫停按鈕,它轉化為播放按鈕,視訊同時播放(注意先判斷視訊的狀態) oStopToP.onclick = function(){ oVideo.play(); stopState(); } // 點選播放按鈕,它轉化為暫停按鈕,視訊同時停止(注意先判斷視訊的狀態)
oPlayToS.onclick = function(){ oVideo.pause(); playState(); } // 獲取視訊的總時間,傳遞給oAllTime中,注意時間轉化為分秒的形式 oAllTime.innerHTML = timeT(oVideo.duration); oVideo.addEventListener("timeupdate",function(){ oOverTime.innerHTML =timeT(oVideo.currentTime); // 讓視訊的進度條隨著時間的播放而走動 oOver.style.width = oVideo.currentTime/oVideo.duration*100+"%"; },false) // 注意分析,當點選進度條上的任何一個地方需要,發生的變化: // 1,進度條走到那裡(通過offsetX事件可自動獲取) // 2,用當前時間(oVideo.currentTime)跳轉到那裡以控制視訊也跳到那裡, // 不要賦值給oAllTime.innerHTML,因為它無法控制視訊的播放,而且上面已經給過, // 注意offsetX,獲取的是你點選的這個物體的地方到它的最左邊的距離用px表示,而我們設定用的是%型別 oProgress.addEventListener("click",function(event){ var x = event.offsetX; var width = this.offsetWidth; var scale = x/width; oOver.style.width = scale*100+"%"; oVideo.currentTime = scale*oVideo.duration; },false) oProgressA.addEventListener("click",function(event){ var x = event.offsetX; var width = this.offsetWidth; var scale = x/width; oOverA.style.width = scale*100+"%"; oVideo.volume = scale; },false) // 如果視訊結束返回初始狀態 oVideo.addEventListener('ended',function(){ this.currentTime=0; playState(); },false) // 全屏 ofullScreen.addEventListener("click",function(){ oVideo.webkitRequestFullScreen(); },false) },false) // 把時間轉化成分秒的方式,用同一個變數來存放不同時期的值 function timeT(num){ var m = Math.floor(num/60); var s = Math.floor(num%60); m = m > 9 ? m : "0" + m; s = s > 9 ? s : "0" + s; return m + ":" + s; } // 播放狀態 function playState(){ if(oVideo.paused){ oStopToP.style.display = "block"; oPlayToS.style.display = "none"; } } // 暫停狀態 function stopState(){ if(!oVideo.paused){ oStopToP.style.display = "none"; oPlayToS.style.display = "block";s } }