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

歡迎訪問 生活随笔!

生活随笔

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

HTML

前端截取视频第一帧作为封面

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

概述

1.做項目的時候突然想截取視頻第一幀,作為視頻的封面,然后搜了很多博客都發現得到空白的圖片,最后得到了解決。

2.方法:通過創建canvas標簽,利用其drawImage() 方法在畫布上繪制該視頻,然后運用toDataURL方法轉換canvas上的圖片為base64格式,并將base64格式的圖片作為video標簽的poster屬性。

3.瀏覽器:chrome

代碼關鍵

video.currentTime = 1

currentTime 屬性設置或返回視頻播放的當前位置(以秒計)。當設置該屬性時,播放會跳躍到指定的位置。一定要設置該屬性,不然會得到空白的圖片。

知識點

video.onloadeddata

onloadeddata 事件在當前幀的數據加載完成且還沒有足夠的數據播放視頻/音頻(audio/video)的下一幀時觸發。在當前幀的數據可用時執行相應 JavaScript代碼。

canvas.toDataURL

是返回一個包含圖片展示的 數據URL。可以使用 type 參數其類型,默認為 PNG 格式。圖片的分辨率為96dpi。

video.setAttribute(‘crossOrigin’, ‘anonymous’)

canvas無法對跨域的圖片進行操作,這樣解決了跨域問題。

完整代碼

<!DOCTYPE html> <html><head><meta charset="UTF-8"><title>capture screen</title></head><body><video id="video" controls="controls"><source src="./0130_1.mp4"></video><div id="output"></div><script type="text/javascript">(function(){var video, output;output = document.getElementById("output");var canvas = document.createElement('canvas')var img = document.createElement("img");video = document.getElementById('video')video.setAttribute('crossOrigin', 'anonymous')video.currentTime = 1 canvas.width = video.clientWidthcanvas.height = video.clientHeightvideo.onloadeddata = (() => {canvas.getContext('2d').drawImage(video, 0, 0, canvas.width, canvas.height)var dataURL = canvas.toDataURL('image/png')img.src = dataURL;img.width = 400;img.height = 300;output.appendChild(img);})})();</script></body> </html>

總結

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

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