详解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宝典学习笔记(下)
Jan 10 Javascript
仿谷歌主页js动画效果实现代码
Jul 14 Javascript
jquery与js函数冲突的两种解决方法
Sep 09 Javascript
javascript dom追加内容实现示例
Sep 21 Javascript
jQuery实现径向动画菜单效果
Jul 17 Javascript
jquery实现未经美化的简洁TAB菜单效果
Aug 28 Javascript
jQuery Validate验证框架详解(推荐)
Dec 17 Javascript
windows下vue-cli导入bootstrap样式
Apr 25 Javascript
bootstrap-table formatter 使用vue组件的方法
May 09 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
May 12 Javascript
JavaScript的查询机制LHS和RHS解析
Aug 16 Javascript
JQuery获得内容和属性方法解析
May 30 jQuery
解决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的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
jQuery源码分析之Event事件分析
2010/06/07 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
解决Extjs上传图片无法预览的解决方法
2012/03/22 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
2013/04/17 Javascript
javascript基础之查找元素的详细介绍(访问节点)
2013/07/05 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
JS实现清除指定cookies的方法
2014/09/20 Javascript
javascript实现的简单的表单验证
2015/07/10 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
Vue中computed与methods的区别详解
2018/03/24 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
Python中的ctime()方法使用教程
2015/05/22 Python
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
python3 打开外部程序及关闭的示例
2018/11/06 Python
python找出因数与质因数的方法
2019/07/25 Python
PyCharm第一次安装及使用教程
2020/01/08 Python
python-sys.stdout作为默认函数参数的实现
2020/02/21 Python
使用Pycharm分段执行代码
2020/04/15 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
统计每一学生的平均成绩
2014/06/06 面试题
学校地质灾害防治方案
2014/06/10 职场文书
室内趣味活动方案
2014/08/24 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
2014年宣传部个人工作总结
2014/12/06 职场文书
2014年法务工作总结
2014/12/11 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
个人自荐书怎么写
2015/03/26 职场文书
毕业生学校组织意见
2015/06/04 职场文书
Ajax异步刷新功能及简单案例
2021/11/20 Javascript