当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 详解js获取video任意时间的画面截图

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

2019年07月23日  | 移动技术网IT编程  | 我要评论
首先就是要把视频加载出来,然后使用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任意时间的画面截图详解整合,希望对大家有所帮助

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网