js HTML5多媒體影音播放
之前曾經(jīng)介紹過,在HTML5中可以通過<video>標(biāo)簽在網(wǎng)頁中播放影片,且不需要再安裝額外的插件,此功能已經(jīng)帶給用戶極大的便利。但基本的<video>標(biāo)簽只提供了簡單功能的播放器界面,如果想要改變播放器的外觀和功能,只能結(jié)合<canvas>標(biāo)簽和javascript語句,就能制作出酷炫的播放控制器。
{drawImage}
畫布canvas如何與視頻video標(biāo)簽結(jié)合,達(dá)到制作各種視頻功能的效果呢?其秘訣在于通過畫布重新描繪一次視頻的內(nèi)容,將視頻的每個(gè)畫面都轉(zhuǎn)換成畫布的圖像,這樣就可以通過javascript語言所提供的圖像控制方法來操控它們。所以炫酷播放器所使用的視頻功能,并不針對(duì)video,而是針對(duì)描繪出影像的canvas。
能夠描繪影像到畫布中的方法是“drawImage",此方法允許在canvas中插入畫布(canvas),圖像(img)和視頻(video)等元素。
drawImage方法有三種:
drawImage(image,dx,dy)//原比例繪制圖像
drawImage(image,dx,dy,dw,dh)//按設(shè)置長寬繪制圖像
drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh)//裁切后繪制圖像


<html>
<head>
<meta charset="utf-8"/>
<style>
canvas{
border:1px solid black;
}
</style>
<script >
function draw(){
var imgx = new Image();
imgx.src = 'img/gophers-Slice_Scoreboard.png';
imgx.onload = function(){
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
context.drawImage(this,20,20,75,75);
}
}
</script>
</head>
<body onload="draw()">
<p>Image:</p>
<img id="pic"src="img/gophers-Slice_Scoreboard.png" alt="pic" width="50" height="50">
<p>Canvas:</p>
<canvas id="myCanvas" style="border:1px solid;">
</canvas>
</body>
</html>
簡單地通過drawImage描繪圖像也許看不出來canvas的強(qiáng)大,其實(shí)真正精彩的是可以通過畫布上描繪的結(jié)果加入javascript語句來實(shí)現(xiàn)的特效效果或功能。
接下來示范如何用javascript指令動(dòng)態(tài)調(diào)整視頻播放器的大小。
<html>
<head>
<meta charset="utf-8"/>
<style>
</style>
<script >
function eventWindowLoaded(){
var videoElement=document.getElementById("theVideo");
var widthtoHeightRatio=videoElement.width/videoElement.height;
var sizeElement=document.getElementById("videoSize");
sizeElement.addEventListener('change',videoSizeChanged,false);
function videoChanged(e){
var target=e.target;
var videoElement=document.getElementById("theVideo");
videoElement.width=target.value;
videoElement.height=target.value/widthtoHeightRatio;
}
}
</script>
</head>
<body onload="eventWindowLoaded()">
<div>
<form>Video Size:
<input type="range" id="videoSize" min="80" max="1280" step="1" value="320"/>
</form>
</div>
<div>
<video autoplay loop controls id="theVideo" src="funny.mp4" width="320" height="240"></video>
</div>
</body>
</html>
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
bootstrap表單按回車會(huì)自動(dòng)刷新頁面的解決辦法
這篇文章主要介紹了bootstrap表單按回車會(huì)自動(dòng)刷新頁面的問題及解決辦法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03
JavaScript實(shí)現(xiàn)星級(jí)評(píng)價(jià)效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)星級(jí)評(píng)價(jià)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
JavaScript動(dòng)態(tài)加載樣式表的方法
這篇文章主要介紹了JavaScript動(dòng)態(tài)加載樣式表的方法,涉及javascript操作樣式表的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03
JavaScript實(shí)現(xiàn)的石頭剪刀布游戲源碼分享
這篇文章主要介紹了JavaScript實(shí)現(xiàn)的石頭剪刀布游戲源碼分享,挺好玩的小游戲,關(guān)鍵在一些算法上,需要的朋友可以參考下2014-08-08
javascript實(shí)現(xiàn)右側(cè)彈出“分享到”窗口效果
這篇文章主要為大家介紹了javascript實(shí)現(xiàn)右側(cè)彈出“分享到”窗口效果,以一個(gè)完整的js右側(cè)彈出“分享到”窗口的實(shí)例代碼進(jìn)行分析,感興趣的小伙伴們可以參考一下2016-02-02
three.js 實(shí)現(xiàn)露珠滴落動(dòng)畫效果的示例代碼
這篇文章主要介紹了three.js 實(shí)現(xiàn)露珠滴落動(dòng)畫效果的示例代碼,非常不錯(cuò),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
JS計(jì)算距當(dāng)前時(shí)間的時(shí)間差實(shí)例
下面小編就為大家分享一篇JS計(jì)算距當(dāng)前時(shí)間的時(shí)間差實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12

