欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解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=

 详解js获取video任意时间的画面截图

<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任意时间的画面截图详解整合,希望对大家有所帮助