详解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 相关文章推荐
FileUpload 控件 禁止手动输入或粘贴的实现代码
Apr 07 Javascript
javascript轻量级模板引擎juicer使用指南
Jun 22 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
Jul 29 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
Sep 13 Javascript
JS实现的表格行上下移动操作示例
Aug 03 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
Oct 14 Javascript
浅谈JavaScript的函数及作用域
Dec 30 Javascript
jQuery实现用户信息表格的添加和删除功能
Sep 12 jQuery
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
Nov 14 jQuery
详解ESLint在Vue中的使用小结
Oct 15 Javascript
基于vue和websocket的多人在线聊天室
Feb 01 Javascript
浅谈js中的attributes和Attribute的用法与区别
Jul 16 Javascript
解决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实现图象锐化代码
2007/06/14 PHP
PHP循环获取GET和POST值的代码
2008/04/09 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
PHP连接MySQL进行增、删、改、查操作
2017/02/19 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
JS JavaScript获取Url参数,src属性参数
2021/03/09 Javascript
索趣科技的答案
2007/02/07 Javascript
js 巧妙去除数组中的重复项
2010/01/25 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
jquery提示效果实例分析
2014/11/25 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
Angularjs中使用指令绑定点击事件的方法
2017/03/30 Javascript
如何从零开始手写Koa2框架
2019/03/22 Javascript
JavaScript面试技巧之数组的一些不low操作
2019/03/22 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
2020/04/11 Javascript
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
简单谈谈python中的语句和语法
2017/08/10 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
python各种excel写入方式的速度对比
2020/11/10 Python
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
LODI女鞋在线商店:阿利坎特的鞋类品牌
2019/02/15 全球购物
交通安全教育制度
2014/02/02 职场文书
贫困证明模板(3篇)
2014/09/16 职场文书
综合素质自我评价评语
2015/03/06 职场文书
美丽人生观后感
2015/06/03 职场文书
初中毕业生感言
2015/07/31 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS
解决Laravel使用验证时跳转到首页的问题
2021/11/17 PHP