首先就是要把視頻加載出來,然后使用canvas.getContext(‘2d').drawImage(videoElement, 0, 0, canvas.width, canvas.height);獲取到當前視頻時間的截圖,需要不同時間的video視頻圖,設置video的currentTime(單位秒),然后videoElement這個對象信息會實時更新。
如果是視頻是在阿里云OSS上就更方便了,poster=“http://a-image-demo.oss-cn-qingdao.aliyuncs.com/demo.mp4?x-oss-process=video/snapshot,t_6000,m_fast”

<div contenteditable="true" id="in-box" style="width:1000px;margin: 20px auto;"></div><div style="width:1000px;margin: 20px auto;"> <input type="file" name="" id="upload-ipt"> <div class="review" id="out-box"></div></div>
function getVideoImage() { var obj_file = document.getElementById("upload-ipt"); var file = obj_file.files[0]; var blob = new Blob([file]), // 文件轉化成二進制文件 url = URL.createObjectURL(blob); //轉化成url if (file && /video/g.test(file.type)) { var $video = $('<div><video controls src="' + url + '"></video></div><div> </div>'); //后面加一個空格div是為了解決在富文本中按Backspace時刪除無反應的問題 $('#in-box').html($video); var videoElement = $("video")[0]; videoElement.addEventListener("canplay", function (_event) { var canvas = document.createElement("canvas"); canvas.width = videoElement.videoWidth; canvas.height = videoElement.videoHeight; console.log(videoElement.videoWidth) canvas.getContext('2d').drawImage(videoElement, 0, 0, canvas.width, canvas.height); var img = document.createElement("img"); img.src = canvas.toDataURL("image/png"); $("#out-box").html(img); URL.revokeObjectURL(this.src); // 釋放createObjectURL創建的對象 console.log("loadedmetadata") }); }else{ alert("請上傳一個視頻文件!"); obj_file.value = "" }};以上所述是小編給大家介紹的js獲取video任意時間的畫面截圖詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!
新聞熱點
疑難解答