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


Posted in Javascript onApril 17, 2019

首先就是要把视频加载出来,然后使用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任意时间的画面截图详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
过虑特殊字符输入的js代码
Aug 05 Javascript
javascript中onmouse事件在div中失效问题的解决方法
Jan 09 Javascript
IE下使用cloneNode注意事项分享
Nov 22 Javascript
JavaScript window.location对象
Nov 14 Javascript
关于JavaScript限制字数的输入框的那些事
Aug 14 Javascript
JS创建对象的写法示例
Nov 04 Javascript
String字符串截取的四种方式总结
Nov 28 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
Apr 27 Javascript
vue使用vuex实现首页导航切换不同路由的方法
May 08 Javascript
在vue中使用echars实现上浮与下钻效果
Nov 08 Javascript
vue-cli4使用全局less文件中的变量配置操作
Oct 21 Javascript
vue+iview实现文件上传
Nov 17 Vue.js
解决vue跨域axios异步通信问题
Apr 17 #Javascript
自定义Vue中的v-module双向绑定的实现
Apr 17 #Javascript
微信公众平台 发送模板消息(Java接口开发)
Apr 17 #Javascript
微信公众平台 客服接口发消息的实现代码(Java接口开发)
Apr 17 #Javascript
vue获取时间戳转换为日期格式代码实例
Apr 17 #Javascript
微信小程序bindinput与bindsubmit的区别实例分析
Apr 17 #Javascript
vue 项目 iOS WKWebView 加载
Apr 17 #Javascript
You might like
php+mysql事务rollback&amp;commit示例
2010/02/08 PHP
TMDPHP 模板引擎使用教程
2012/03/13 PHP
php设置允许大文件上传示例代码
2014/03/10 PHP
php版淘宝网查询商品接口代码示例
2014/06/17 PHP
2014年最新推荐的10款 PHP 开发框架
2014/08/01 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
2015/09/14 PHP
PHP微信开发之有道翻译
2016/06/23 PHP
jQuery 连续列表实现代码
2009/12/21 Javascript
jquery each()源代码
2011/02/14 Javascript
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
学习使用jquery iScroll.js移动端滚动条插件
2020/03/24 Javascript
window.open不被拦截的简单实现代码(推荐)
2016/08/04 Javascript
在JavaScript中调用Java类和接口的方法
2016/09/07 Javascript
详解angularjs的数组传参方式的简单实现
2017/07/28 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
vue自定义指令实现方法详解
2019/02/11 Javascript
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[57:41]Secret vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
利用Python破解验证码实例详解
2016/12/08 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
python检索特定内容的文本文件实例
2018/06/05 Python
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
澳大利亚电子产品购物网站:Dick Smith
2017/02/02 全球购物
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
金智子午JAVA面试题
2015/09/04 面试题
中学生爱国演讲稿
2013/12/31 职场文书
2014年小班元旦活动方案
2014/02/16 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
科技活动周标语
2014/10/08 职场文书
KTV门卫岗位职责
2014/10/09 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书
MySQL kill不掉线程的原因
2021/05/07 MySQL
python迷宫问题深度优先遍历实例
2021/06/20 Python
python实现会员管理系统
2022/03/18 Python
Redis数据同步之redis shake的实现方法
2022/04/21 Redis