详解js获取video任意时间的画面截图
程序员文章站
2023-11-22 11:01:22
首先就是要把视频加载出来,然后使用canvas.getcontext(‘2d').drawimage(videoelement, 0, 0, canvas.width, c...
首先就是要把视频加载出来,然后使用canvas.getcontext(‘2d').drawimage(videoelement, 0, 0, canvas.width, canvas.height);获取到当前视频时间的截图,需要不同时间的video视频图,设置video的currenttime(单位秒),然后videoelement这个对象信息会实时更新。
如果是视频是在阿里云oss上就更方便了,poster=
<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任意时间的画面截图详解整合,希望对大家有所帮助
上一篇: c# SQLHelper(for winForm)实现代码
下一篇: C# 游戏外挂实现核心代码