久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

canvas與html5實現視頻截圖功能示例

本篇文章主要介紹了canvas與html5實現視頻截圖功能示例,非常具有實用價值,需要的朋友可以參考下。

這段時間一直在研究canvas,突發奇想想做一個可以截屏視頻的功能,然后把圖片拉去做表情包,哈哈哈哈哈哈~~

制作方法:

1.在頁面中加載視頻

在使用canvas制作這個截圖功能時,首先必須保證頁面上已經加載完成了這個視頻,這樣才能夠方便的對其操作。如果使用下面直接嵌入<video>標簽的方式:

<video loop controls id="testmp4" width="500" height="400" >    

<source src="test.mp4" type="video/mp4">  

<source src="test.webm" type="video/webm">   

<source src="test.ogg" type="video/ogg">

</video> 

在我的那篇《html5與視頻》中講到,瀏覽器對視頻的預加載progress以及load事件支持不同,會影響video的播放及其他事件的觸發。所以我們在這里使用js構造video的方式來引入視頻。

這種方式引入視頻要注意,不能引入多個source,所以要先判斷瀏覽器對視頻格式的支持。

1.1使用video的canPlayType()方法判斷支持格式

canPlayType()方法需要傳入一個參數,這個參數就是video的格式,

常用值:video/ogg;

    video/mp4;

    video/webm;

或者包括編碼器:

    video/ogg;codecs="theora,vorbis"

    video/mp4;codecs="avc1.4D401E, mp4a.40.2"

    video/webm;codesc="vp8.0, vorbis"

返回值:表示網頁的支持級別:"probably"-最有可能支持(輸入值帶編碼器的時候只返回這個);"maybe" - 可能支持;"" - (空字符串)不支持;

function videoType(video){

    var returnType='';

    if(video.canPlayType('video/mp4')=='probably'||video.canPlayType('video/mp4')=='maybe'){

      returnType= 'mp4';

    }else if(video.canPlayType('video/ogg')=='probably'||video.canPlayType('video/ogg')=='maybe'){<br>     returnType= 'ogg';    <br>   }else if(video.canPlayType('video/webm')=='probably'||video.canPlayType('video/webm')=='maybe'){<br>     returnType= 'webm';    <br>   }<br>   return returnType; 


} 

這個函數可以判斷瀏覽器對video支持的格式。

 1.2使用js動態加載video標簽

這里判斷了瀏覽器的支持格式后,由于我用的是chrome,所以我的瀏覽器支持mp4格式的視頻,然后我們動態創建一個video標簽。

var videoElem;

var videoDiv;

function createVideo(){

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

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

     videoDiv.appendChild(videoElem);

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

     if(vtype==""){

        videoDiv.innerHtml('不支持video')

    }else{

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

由于這里我們要制作截圖功能,單純的video不具備截圖的接口,所以我們要把它復制到canvas上,在canvas上播出這個視頻,所以這里我們先把video給隱藏掉(display:none)。

2.使用canvas復制視頻

現在video已經在瀏覽器上播放了,接下來我們把它復制到canvas里,首先建立canvas,然后得到畫布context,這些就不說了。如何把video畫在canvas上,這里我們要使用一個函數。drawImage函數的用法

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

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

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

以上就是drawImage的用法了,這個函數非常的強大。

回到做截圖,我們現在已經在瀏覽器上創建好了畫布--contextVideo,接著我們在這里把視頻畫出來:

contextVideo.drawImage(videoElem,0,0);

然后我們可以看到在canvas里畫了一張圖,但是視頻是不斷變化的,所以我們需要使用setInterval函數不斷的吧video作為源來畫圖。

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

這里時間間隔的大小會影響到視頻播放是否會卡。  

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

 3.制作截圖展示canvas面板

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了有關HTML5頁面在iPhoneX適配問題,需要的朋友可以參考下
本篇文章主要介紹了html5中canvas圖表實現柱狀圖的示例,本文使用canvas來實現一個圖表,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
Adobe公司出品的多媒體處理軟件產品線較多,涵蓋了音視頻編輯、圖像處理、平面設計、影視后期等領域。這篇文章主要介紹了Adobe Html5 Extension開發初體驗圖文教程,非常不錯,需要的朋
這篇文章主要介紹了基于HTML5的WebGL經典3D虛擬機房漫游動畫,需要的朋友可以參考下
這篇文章主要介紹了html5實現移動端適配完美寫法,需要的朋友可以參考下
本篇文章主要介紹了HTML5響應式(自適應)網頁設計的實現,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
主站蜘蛛池模板: www国产成人免费观看视频,深夜成人网 | 精品真实国产乱文在线 | 在线视频日韩 | 精品一区二区三 | 男人的天堂一级片 | 天天夜夜人人 | 亚洲国产精品成人综合久久久 | 国产区精品 | 欧美成人免费在线视频 | 黄色在线免费观看视频 | 欧美日韩中文在线 | 久久久影院| 一区网站| 少妇午夜一级艳片欧美精品 | 国产精品久久久久久久久久久久 | 又黑又粗又长的欧美一区 | 中文字幕第九页 | 欧美成人免费在线视频 | 国产视频91在线 | 中文字幕一区二区三 | 亚洲欧美精品久久 | 日本成人区 | 伊人免费网 | 免费在线看黄 | 亚洲欧美视频一区 | 欧美日韩精品区 | 99热精品在线观看 | 久久久久免费 | 日日干日日操 | 精品自拍视频 | 亚洲欧洲精品一区 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 亚洲精品一区二区三区在线 | 九九热在线免费视频 | 国产精品夜色一区二区三区 | 久久免费精品 | 欧美久久不卡 | 欧美久久久网站 | 亚洲一区二区三区 | 中文字幕视频在线 | 亚洲男女视频在线观看 |