详解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 相关文章推荐
兼容FireFox 的 js 日历 支持时间的获取
Mar 04 Javascript
js 判断一个元素是否在页面中存在
Dec 27 Javascript
jQuery下拉友情链接美化效果代码分享
Aug 26 Javascript
jQuery实现打开页面渐现效果示例
Jul 27 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
Nov 22 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
Jan 04 Javascript
JavaScript实现三级级联特效
Nov 05 Javascript
vue-cli实现多页面多路由的示例代码
Jan 30 Javascript
微信小程序页面生命周期详解
Jan 31 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
May 04 Javascript
JS实现网站楼层导航效果代码实例
Jun 16 Javascript
Vue vee-validate插件的简单使用
Jun 22 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
与空气斗智斗勇的经典《Overlord》,传说中的“无稽之谈”
2020/04/09 日漫
php短域名转换为实际域名函数
2011/01/17 PHP
PHP中使用数组指针函数操作数组示例
2014/11/19 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
2016/09/30 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
2019/09/30 PHP
JavaScript中数组对象的那些自带方法介绍
2013/03/12 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
vue2笔记 — vue-router路由懒加载的实现
2017/03/03 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
12个非常有用的JavaScript技巧
2017/05/17 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
Flask框架web开发之零基础入门
2018/12/10 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
python3中eval函数用法使用简介
2019/08/02 Python
Python3 把一个列表按指定数目分成多个列表的方式
2019/12/25 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
专业销售业务员求职信
2013/11/18 职场文书
学前教育求职自荐信范文
2013/12/25 职场文书
便利店的创业计划书
2014/01/15 职场文书
幼儿园大班新学期寄语
2014/01/18 职场文书
大专学生求职信
2014/07/04 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
组织生活会发言材料
2014/12/15 职场文书
2014年服务员个人工作总结
2014/12/23 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
react antd实现动态增减表单
2021/06/03 Javascript