详解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 相关文章推荐
又一个小巧的图片预加载类
May 05 Javascript
js相册效果代码(点击创建即可)
Apr 16 Javascript
选择器中含有空格在使用示例及注意事项
Jul 31 Javascript
javascript面向对象快速入门实例
Jan 13 Javascript
利用JQuery实现datatables插件的增加和删除行功能
Jan 06 Javascript
js实现交通灯效果
Jan 13 Javascript
100行代码理解和分析vue2.0响应式架构
Mar 09 Javascript
vue的mixins属性详解
Mar 14 Javascript
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
Jun 14 Javascript
VUE 实现复制内容到剪贴板的两种方法
Apr 24 Javascript
JQuery事件冒泡和默认行为代码实例
May 13 jQuery
如何使用vue3打造一个物料库
May 08 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
无数据库的详细域名查询程序PHP版(1)
2006/10/09 PHP
50个PHP程序性能优化的方法
2014/06/02 PHP
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
永不消失的title提示代码
2007/02/15 Javascript
js 弹出菜单/窗口效果
2011/10/30 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
js jquery获取随机生成id的服务器控件的三种方法
2013/07/11 Javascript
分享Javascript中最常用的55个经典小技巧
2013/11/29 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
jQuery实现统计输入文字个数的方法
2015/03/11 Javascript
javascript实现汉字转拼音代码分享
2015/04/20 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
2017/09/07 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
JS 验证码功能的三种实现方式
2018/11/26 Javascript
vue组件化中slot的基本使用方法
2019/05/01 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
Python3的socket使用方法详解
2020/02/18 Python
Django 返回json数据的实现示例
2020/03/05 Python
在ipython notebook中使用argparse方式
2020/04/20 Python
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
2013/02/04 HTML / CSS
美国羽绒床上用品第一品牌:Pacific Coast
2018/08/25 全球购物
为什么要做架构设计
2015/07/08 面试题
vue实现倒计时功能
2021/03/24 Vue.js
工厂总经理岗位职责
2014/02/07 职场文书
校庆筹备方案
2014/03/30 职场文书
房产委托公证书样本
2014/04/04 职场文书
大四毕业生自荐书
2014/07/05 职场文书
网聊搭讪开场白
2015/05/28 职场文书
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android