详解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 相关文章推荐
控制打印时页眉角的代码
Feb 08 Javascript
js判断一个元素是否为另一个元素的子元素的代码
Mar 21 Javascript
node.js超时timeout详解
Nov 26 Javascript
jQuery中prop()方法用法实例
Jan 05 Javascript
提交按钮的name='submit'引起的js失效问题及原因
Feb 25 Javascript
JS模拟实现方法重载示例
Aug 03 Javascript
vee-validate vue 2.0自定义表单验证的实例
Aug 28 Javascript
vue中v-for循环给标签属性赋值的方法
Oct 18 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
Nov 01 jQuery
JS原型和原型链原理与用法实例详解
Feb 05 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
Apr 15 Javascript
vue解决跨域问题(推荐)
Nov 10 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/02/08 PHP
PHP禁止个别IP访问网站
2013/10/30 PHP
使用php验证复选框有效性的示例
2013/11/13 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2019/03/30 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
查看图片(前进后退)功能实现js代码
2013/04/24 Javascript
javascript删除option选项的多种方法总结
2013/11/22 Javascript
js中function()使用方法
2013/12/24 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
HTML的select控件美化
2017/03/27 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
使用VueCli3+TypeScript+Vuex一步步构建todoList的方法
2019/07/25 Javascript
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
浅探express路由和中间件的实现
2019/09/30 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
Python自动化部署工具Fabric的简单上手指南
2016/04/19 Python
详解Python学习之安装pandas
2019/04/16 Python
了解不常见但是实用的Python技巧
2019/05/23 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
神经网络训练采用gpu设置的方式
2021/03/03 Python
HTML5 声明兼容IE的写法
2011/05/16 HTML / CSS
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
行政人员工作职责
2013/12/05 职场文书
药品业务员岗位职责
2014/04/17 职场文书
就业协议书范本
2014/10/08 职场文书
教师廉洁自律个人总结
2015/02/10 职场文书
青岛海底世界导游词
2015/02/11 职场文书
JavaWeb实现显示mysql数据库数据
2022/03/19 Java/Android