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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

批量截取视频第一帧

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 批量截取视频第一帧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

批量截取后端接口返回視頻地址數據的第一幀作為封面展示在列表

我使用的是vue2的Mixins所抽離由此實現共用

1:創建myMinxins共用的js組件(由于項目中多個地方需要使用)

?2:第二步:創建函數 - 抽離第一幀代碼(可直接復制該函數代碼)

?代碼:

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", 400);video.setAttribute("height", 240);video.setAttribute("preload", "auto");video.setAttribute('crossOrigin', 'anonymous');video.addEventListener("loadeddata", function () {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"); //轉換為base64resolve(dataURL);});})},

第三步:在需要的頁面組件中引入并調用myMixins中的抽離第一幀函數getVideoBase64

(1):引入

import { myMixins } from '../../utils/myMixins'

(2):掛載

mixins: [myMixins], //與生命周期 & data都是同級的位置

(3):使用(調用myMixins中的抽離第一幀函數getVideoBase64)

例如:// res.data.currentClipList是一個數據 里面有多個對象數據res.data.currentClipList.forEach(item => {this.getVideoBase64(item.videoUrl).then((data) => { //videoUrl視頻keyitem.coverUrl = data //coverUrl 圖片key});});//處理完畢后將數據進行賦值渲染展示this.clipList = res.data.currentClipList;

到此封面圖片就會實現完畢了,(小問題:數據較多時候偶爾某個封面會產生未抽離到 — 再次刷新就會發現抽離到了)

總結

以上是生活随笔為你收集整理的批量截取视频第一帧的全部內容,希望文章能夠幫你解決所遇到的問題。

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