详解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 相关文章推荐
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
Nov 14 Javascript
THREE.JS入门教程(3)着色器-下
Jan 24 Javascript
jquery获得keycode的示例代码
Dec 30 Javascript
AngularJS仿苹果滑屏删除控件
Jan 18 Javascript
超实用的JavaScript代码段 附使用方法
May 22 Javascript
jQuery多级联动下拉插件chained用法示例
Aug 20 Javascript
基于JavaScript实现Tab选项卡切换效果
Nov 24 Javascript
js遮罩效果制作弹出注册界面效果
Jan 25 Javascript
JavaScript中for循环的几种写法与效率总结
Feb 03 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
Sep 26 Javascript
AngularJS创建一个上传照片的指令实例代码
Feb 24 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
Jul 25 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句法规则详解 入门学习
2011/11/09 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
动态改变textbox的宽高的js
2006/10/26 Javascript
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
JavaScript下利用fso判断文件是否存在的代码
2010/12/11 Javascript
Jquery提交表单 Form.js官方插件介绍
2012/03/01 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
2014/04/10 Javascript
jQuery中animate用法实例分析
2015/03/09 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
学习JavaScript设计模式(多态)
2015/11/25 Javascript
基于JS实现省市联动效果代码分享
2016/06/06 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
利用jsonp跨域调用百度js实现搜索框智能提示
2016/08/24 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
详解vue-cli中配置sass
2017/06/21 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
使用kbone解决Vue项目同时支持小程序问题
2019/11/08 Javascript
使用vue引入maptalks地图及聚合效果的实现
2020/08/10 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
微信小程序实现简单的select下拉框
2020/11/23 Javascript
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
python中requests模块的使用方法
2015/04/08 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
Django中的用户身份验证示例详解
2019/08/07 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
巴西购物网站:Onofre Agora
2020/06/08 全球购物
Hammitt官网:设计师手袋
2020/05/23 全球购物
房地产经营管理专业自荐信
2014/09/02 职场文书
买卖合同纠纷代理词
2015/05/25 职场文书
2016国庆促销广告语
2016/01/28 职场文书
Python 读写 Matlab Mat 格式数据的操作
2021/05/19 Python
如何让你的Nginx支持分布式追踪详解
2022/07/07 Servers