婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > video結合canvas實現視頻在線截圖功能

video結合canvas實現視頻在線截圖功能

熱門標簽:濟南辦理400電話 ai電銷機器人連接網關 鄭州電銷外呼系統違法嗎 農村住宅地圖標注 威海營銷外呼系統招商 漳州人工外呼系統排名 中紳電銷智能機器人 跟電銷機器人做同事 鶴壁手機自動外呼系統怎么安裝

給大家講解下我前幾天看到的一個有趣小demo:視頻在線截圖。以下是我修改和添加了新功能后的效果圖:

 

是不是很酷,其實挺簡單的,下面就給大家講講怎么弄哈。

這里主要分為三大塊功能,首先是第一個:

利用URL對象獲取視頻鏈接并展示:

js的URL對象有個 createObjectURL 方法,它可以獲取一個文件(File對象)的url,然后插入到 video 元素的 src 特性中,這樣就可以實現視屏的展示了。當然如何獲取File對象呢,方法有種,比如使用input元素,或者使用拖動的方式。一個完整的代碼段:

<input type="file"/>
document.querySelector('input[type="file"]').addEventListener('change',function () {
    document.querySelector('video').src = window.URL.createObjectURL(this.files[0])
})

當然源碼中我并不是這樣寫的,僅僅是為了給大家一個演示而已。關于URL更加具體的使用,大家可以看看這篇文章或者MDN。

利用canvas實現視頻截圖:

接下來就是關鍵步驟了,但也很簡單,那就是使用 canvas 的 drawImage 方法,大家如果翻到高程三的第15.2.6節,就會發現 drawImage 的方法的使用描述得非常詳細,但漏講了一個,那就是 video 元素也可傳入 drawImage 方法中,并且繪制圖形。具體代碼段:

var canvas = document.createElement("canvas");
var canvasCtx = canvas.getContext("2d");
var video=document.querySelector('video');
//坐原圖像的x,y軸坐標,大小,目標圖像的x,y軸標,大小。
canvasCtx.drawImage(video, 0, 0, videoWidth, videoHeight, 0, 0, imgWidth, imgHeight);
//把圖標base64編碼后變成一段url字符串
var dataUrl = canvas.toDataURL("image/png");
//插入圖片得src特性中
document.createElement('img').src=dataUrl;

繪制完成圖像后,再調用 canvas 的 toDataURl 方法把圖像變成 base64 編碼的url,就可插入到 img 元素中展示,一個縮略的圖的制作便完成了。關于圖片和base64的關系,具體的同學們可以看下這篇文章。

實現動畫效果:

該動畫實現的主要原理是:先在視頻原處創建一張大小和視頻一致的大圖片,設置為絕對布局( position:absolut ),在實際放置縮略圖處創建一張小圖片,設置為不可見( visibility:hidden ),然后大圖片通過 left 和 top 實現位移, width 和 height 實現縮小,至實際放置縮略圖處,并形成動畫效果。最后大圖片刪除,小圖片顯示即可。具體代碼段:

function getOffset(elem) {
    var pos = {x: elem.offsetLeft, y: elem.offsetTop};
    var offsetParent = elem.offsetParent;
    while (offsetParent) {
        pos.x += offsetParent.offsetLeft;
        pos.y += offsetParent.offsetTop;
        offsetParent = offsetParent.offsetParent;
    }
    return pos;
}

該函數是獲取小圖片距viewport(視口)的距離,并提供給大圖片作為位移參數的,高程三的12.2.3節有段幾乎一模一樣的代碼,并附有詳細說明,以及替代方案 getBoundingClientRect 函數也有提到,具體的大家翻書看看哈。

下面的代碼便是創建大圖片和小圖片并實現動畫效果了。為了方便易懂,我這兒使用了JQuery

var $imgBig = $("<img/>");
//設置大圖片的初始位置,就是原視頻處。
$imgBig.css({
    position: "absolute",
    left: video.offsetLeft,
    top: video.offsetTop,
    width: video.offsetWidth+ "px",
    height: video.offsetHeight+ "px"
}).attr("src", dataUrl);
var $img = $("<img/>");
$img.hide();
//獲取小圖片的距離參數,實現大圖片的動畫效果。
var offset = getOffset($img[0]);
//添加動畫效果
$imgBig.animate({
    left: offset.x + "px",
    top: offset.y + "px",
    width: $img.width() + "px",
    height: $img.height() + "px"
}, 500, function () {
    $img.show();
    $imgBig.remove();
});

 

恩恩,主要的代碼部分到這就講完啦,當然具體的實現還有很多細節上的問題以及其他的功能可能沒有展示,我就不一一說明了,具體的大家看完源碼后可以再提問。

下面是我的源碼地址,大家可以試試哈:

在github上的demo

總結

以上所述是小編給大家介紹的video結合canvas實現視頻在線截圖功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

標簽:咸陽 營口 甘南 紅河 惠州 蘇州 萍鄉 文山

巨人網絡通訊聲明:本文標題《video結合canvas實現視頻在線截圖功能》,本文關鍵詞  video,結合,canvas,實現,視頻,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《video結合canvas實現視頻在線截圖功能》相關的同類信息!
  • 本頁收集關于video結合canvas實現視頻在線截圖功能的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美天堂亚洲电影院在线播放| 久久你懂得1024| 国产成a人亚洲| 国产精品资源在线观看| 成人黄色网址在线观看| 在线亚洲一区二区| 精品久久久久久久久久久久久久久久久| 天天综合网天天综合色| 国产资源在线一区| 日本高清成人免费播放| 精品国产一区二区三区忘忧草| 中文字幕第一区第二区| 夜夜嗨av一区二区三区四季av | 欧美日精品一区视频| 中文字幕一区av| 午夜欧美在线一二页| 午夜精品123| 成人视屏免费看| 8x8x8国产精品| 国产日本欧美一区二区| 一区二区三区高清| 黑人巨大精品欧美一区| 97精品国产露脸对白| 在线播放欧美女士性生活| hitomi一区二区三区精品| 色综合 综合色| 国产网站一区二区三区| 中文字幕欧美一| 久久国产尿小便嘘嘘尿| 99麻豆久久久国产精品免费优播| 欧美久久久久免费| 亚洲人成网站在线| 男人操女人的视频在线观看欧美 | 国产精品天美传媒沈樵| 亚洲电影激情视频网站| 国产成人在线看| 欧美一区二区三区视频在线| 亚洲免费伊人电影| 成人丝袜18视频在线观看| 欧美成人三级电影在线| 亚洲大片一区二区三区| 色爱区综合激月婷婷| 欧美激情综合五月色丁香| 国产一区二区三区高清播放| 精品国产三级a在线观看| 日韩国产欧美在线视频| 欧美老肥妇做.爰bbww视频| 一区二区三区四区国产精品| 99riav一区二区三区| 国产精品网曝门| 99久久国产免费看| 亚洲欧洲日韩av| 91麻豆国产香蕉久久精品| 不卡一区在线观看| 欧美一区二区三区成人| 偷拍与自拍一区| 男女男精品视频网| 在线不卡a资源高清| 午夜精品在线看| 69堂精品视频| 麻豆精品在线观看| 精品国产伦一区二区三区观看方式| 久久精品国产一区二区三区免费看| 日韩一区二区三区四区五区六区| 青青草视频一区| 日韩欧美电影一二三| 九九精品视频在线看| 国产精品少妇自拍| 亚洲图片欧美色图| 91精品婷婷国产综合久久性色| 男人的天堂亚洲一区| 2020国产精品| 波多野结衣精品在线| 亚洲欧美日本韩国| 欧洲国产伦久久久久久久| 亚洲图片有声小说| 日韩精品一区二区三区老鸭窝| 精品一区二区三区免费| 中文一区二区在线观看| 色妹子一区二区| 日本91福利区| 中文字幕久久午夜不卡| 在线中文字幕一区二区| 另类小说综合欧美亚洲| 国产精品国产三级国产普通话三级 | 在线观看av一区| 日韩—二三区免费观看av| 久久亚洲一级片| 色综合中文字幕国产 | 91国产丝袜在线播放| 日韩电影免费在线看| 亚洲精品国久久99热| 亚洲成a人在线观看| 久久色成人在线| 欧美视频一区二区三区四区| 精品一区二区三区久久| 一区二区三区在线免费| 亚洲精品一线二线三线无人区| 99久久亚洲一区二区三区青草| 午夜精品一区二区三区三上悠亚| 久久夜色精品国产欧美乱极品| 欧美在线不卡一区| 激情小说欧美图片| 亚洲国产欧美在线| 欧美国产97人人爽人人喊| 欧美精品色综合| 成人18精品视频| 韩国精品免费视频| 亚洲永久精品国产| 国产精品私人影院| 欧美成人午夜电影| 欧美剧情电影在线观看完整版免费励志电影| 国产精品自在在线| 日本麻豆一区二区三区视频| 亚洲欧美偷拍三级| 国产女人18水真多18精品一级做| 欧美老女人在线| 欧美日韩国产电影| 亚洲黄色免费网站| 中文字幕在线一区免费| 2020国产精品自拍| 欧美一级国产精品| 欧美在线观看视频一区二区三区 | 国产高清视频一区| 亚洲国产中文字幕| 一区二区三区欧美日| 成人免费一区二区三区在线观看| 精品va天堂亚洲国产| 国产高清在线精品| 国精品**一区二区三区在线蜜桃| 日韩中文字幕亚洲一区二区va在线| 亚洲精品成人悠悠色影视| 国产精品女同一区二区三区| 国产清纯在线一区二区www| 久久亚洲捆绑美女| 2020国产精品自拍| 久久久久久一二三区| 亚洲精品一区二区三区影院| 精品精品欲导航| 欧美变态tickling挠脚心| 日韩精品中文字幕在线一区| 日韩精品专区在线影院重磅| 精品日本一线二线三线不卡| 久久久一区二区三区| 国产午夜精品美女毛片视频| 国产欧美日韩综合精品一区二区| 久久影院午夜论| 国产欧美日韩中文久久| 欧美国产1区2区| 一区二区三区中文免费| 午夜精品视频在线观看| 极品少妇xxxx精品少妇| 国产一区二区在线看| 国产三级精品视频| 日本一区二区视频在线| 国产精品污网站| 亚洲欧美色图小说| 亚洲高清免费视频| 秋霞午夜鲁丝一区二区老狼| 久久99久久精品| 国产91露脸合集magnet| 一本一本大道香蕉久在线精品 | www.av精品| www.日本不卡| 欧美人牲a欧美精品| 日韩色在线观看| 国产精品欧美一级免费| 一区二区三区资源| 男人的天堂久久精品| 成人综合在线网站| 欧美写真视频网站| 亚洲精品一区二区三区蜜桃下载| 国产精品乱码人人做人人爱| 亚洲国产欧美在线| 国产精品亚洲一区二区三区在线| 色哟哟一区二区在线观看 | 日韩女优制服丝袜电影| 久久日韩粉嫩一区二区三区| 亚洲免费av高清| 日韩二区在线观看| jlzzjlzz亚洲日本少妇| 欧美一区二区网站| 中文字幕亚洲综合久久菠萝蜜| 日韩av成人高清| av午夜一区麻豆| 欧美日韩一区在线| 日本一区二区免费在线观看视频 | wwwwxxxxx欧美| 中文字幕日韩一区二区| 三级欧美在线一区| 99久久婷婷国产| 久久免费看少妇高潮| 午夜亚洲国产au精品一区二区 | 国产精品国产三级国产普通话三级 | 久久久影视传媒| 午夜精品久久一牛影视| 99久久夜色精品国产网站| 久久―日本道色综合久久| 国产精品拍天天在线| 精品综合免费视频观看|