您當(dāng)前位置:圖趣網(wǎng)(Tuquu) >> 網(wǎng)頁(yè)設(shè)計(jì)教程 >> 移動(dòng)前端 >> 瀏覽設(shè)計(jì)教程

canvas與html5實(shí)現(xiàn)視頻截圖功能示例(3)

yType('video/webm')=='maybe'){<br>     returnType= 'webm';    <br>   }<br>   return returnType;  }

這個(gè)函數(shù)可以判斷欣賞器對(duì)video支持的格式。

 1.2使用js動(dòng)態(tài)加載video標(biāo)簽

這里判斷了欣賞器的支持格式后,因?yàn)槲矣玫氖莄hrome,所以我的欣賞器支持mp4格式的視頻,然后我們動(dòng)態(tài)創(chuàng)建一個(gè)video標(biāo)簽。

var videoElem;

var videoDiv;

function createVideo(){

     videoElem=document.createElement("video");//創(chuàng)建video

     videoDiv=document.getElementById("videopanel");//獲取video的外層容器

     videoDiv.appendChild(videoElem);

     var vtype=videoType(videoElem);//判斷欣賞器支持的格式

     if(vtype==""){

        videoDiv.innerHtml('不支持video')

    }else{

        videoElem.setAttribute('src',"text."+vtype);
    }
}

因?yàn)檫@里我們要制作截圖功能,單純的video不具備截圖的接口,所以我們要把它復(fù)制到canvas上,在canvas上播出這個(gè)視頻,所以這里我們先把video給隱蔽掉(display:none)。

2.使用canvas復(fù)制視頻

如今video已經(jīng)在欣賞器上播放了,接下來(lái)我們把它復(fù)制到canvas里,首先建立canvas,然后得到畫布context,這些就不說(shuō)了。如何把video畫在canvas上,這里我們要使用一個(gè)函數(shù)。drawImage函數(shù)的用法

1.drawImage(img,x,y):在畫布的(x,y)這個(gè)位置畫一個(gè)img;

2.drawImage(img,x,y,width,height):在畫布的(x,y)這個(gè)位置畫一個(gè)width寬,height高的img;

3.drawImage(img,sx,sy,swidth,sheight,x,y,width,height):在畫布的(x,y)位置畫一個(gè)img的(sx,sy)位置的swidth寬,sheight高的一塊截圖,畫在畫布上要縮放到width寬和height高。

以上就是drawImage的用法了,這個(gè)函數(shù)特別很是的壯大。

回到做截圖,我們?nèi)缃褚呀?jīng)在欣賞器上創(chuàng)建好了畫布--contextVideo,接著我們?cè)谶@里把視頻畫出來(lái):

contextVideo.drawImage(videoElem,0,0);

然后我們可以看到在canvas里畫了一張圖,但是視頻是賡續(xù)轉(zhuǎn)變的,所以我們必要使用setInterval函數(shù)賡續(xù)的吧video作為源來(lái)畫圖。

setInterval(function(){<br>    contextVideo,drawImage(videoElem,0,0);<br>},100)

這里時(shí)間間隔的大小會(huì)影響到視頻播放是否會(huì)卡?! ?/p>

到這里我們就把video搬到canvas上展示了。接下來(lái)制作截圖。

 3.制作截圖展示canvas面板

這里我們必要再在頁(yè)面上畫一個(gè)canvas畫布--contextImg,然后再次行使drawImage方法,截圖。

contextImg.drawImage(canvasVideo,0,0,canvasVideo.width,canvasVideo.height);

這段代碼將第一個(gè)canvas畫到了第二個(gè)canvas上。

4.制作截圖按鈕

制作一個(gè)按鈕,然后綁定click事件,點(diǎn)擊后就調(diào)用上一步的函數(shù),如許就可以制作一個(gè)截圖了。

當(dāng)圖截好后可以將圖右鍵保存下來(lái),然后倒入ps制作表情包了。

以上就是本文的悉數(shù)內(nèi)容,盼望對(duì)大家的學(xué)習(xí)有所幫助,也盼望大家多多支持圖趣網(wǎng)。

[教程作者:Jess_喵]
免責(zé)聲明:本站文章系圖趣網(wǎng)整理發(fā)布,如需轉(zhuǎn)載,請(qǐng)注明出處,素材資料僅供個(gè)人學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途!
本文地址:http://irelandcustomcontracting.com/tutorial/wd231.html
詳解移動(dòng)端HTML5頁(yè)面端去掉input輸入框的白色背景和邊框兼容Android和ios
詳解html5 canvas常用api總結(jié)二--繪圖API
圖趣網(wǎng)微信
建議反饋
×