首页 > 开发 > JS > 正文

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

2024-05-06 16:50:02
字体:
来源:转载
供稿:网友

首先就是要把视频加载出来,然后使用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”

 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任意时间的画面截图详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对VeVb武林网网站的支持!


注:相关教程知识阅读请移步到JavaScript/Ajax教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表