日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

纯前端播放文件流视频并预览并截取视频第一帧

發布時間:2023/12/2 HTML 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 纯前端播放文件流视频并预览并截取视频第一帧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

純前端播放文件流視頻并預覽并截取視頻第一幀

1、把文件流轉為本地可以播放地址

調用getFileURL并傳入文件流會返回一個地址,將地址賦值給video的src即可播放視頻,無需上傳至服務器。

getFileURL(file) {var url = null;if (window.createObjectURL != undefined) { // basicurl = window.createObjectURL(file);} else if (window.URL != undefined) { // mozilla(firefox)url = window.URL.createObjectURL(file);} else if (window.webkitURL != undefined) { // webkit or chromeurl = window.webkitURL.createObjectURL(file);}return url; },

2、截取視頻第一幀

調用getVideoBase64并將第一步得到的url轉給getVideoBase64即可得到視頻第一幀圖片,getVideoBase64返回的片為base64格式。

注釋:canvas.toDataURL(type, encoderOptions)中type為圖片格式,encoderOptions為圖片質量(取值為0-1),圖片格式為png圖片相對會大一些,如果圖片為jpeg那么圖片相對會小很多,圖片為jpeg轉換成base64長度會小很多,當然圖片質量越小base64長度也會越小。

getVideoBase64(url) {return new Promise(function(resolve, reject) {let dataURL = '';let video = document.createElement("video");video.setAttribute('crossorigin', 'anonymous'); //處理跨域video.setAttribute('src', url);video.setAttribute('width', 222);video.setAttribute('height', 148);video.setAttribute('controls', 'controls');video.currentTime = 1 //視頻時長,一定要設置,不然大概率白屏video.addEventListener('loadeddata', function(e) {let canvas = document.createElement("canvas"),width = video.width, //canvas的尺寸和圖片一樣height = video.height;canvas.width = width;canvas.height = height;canvas.getContext("2d").drawImage(video, 0, 0, width, height); //繪制canvasdataURL = canvas.toDataURL('image/jpeg',0.3); //轉換為base64var img = document.createElement("img");img.src = dataURLvideo.setAttribute('poster', dataURL);resolve(dataURL);});}) }

總結

以上是生活随笔為你收集整理的纯前端播放文件流视频并预览并截取视频第一帧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。