详解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 相关文章推荐
Open and Print a Word Document
Jun 15 Javascript
基于JQuery的asp.net树实现代码
Nov 30 Javascript
关于img的href和src取变量及赋值的方法
Apr 28 Javascript
js实现select跳转功能代码
Oct 22 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
Dec 15 Javascript
JS动态计算移动端rem的解决方案
Oct 14 Javascript
vue项目优化之通过keep-alive数据缓存的方法
Dec 11 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
Mar 01 Javascript
react中fetch之cors跨域请求的实现方法
Mar 14 Javascript
微信小程序canvas实现刮刮乐效果
Jul 09 Javascript
node.js基础知识汇总
Aug 25 Javascript
教你一步步实现一个简易promise
Nov 02 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
我的论坛源代码(六)
2006/10/09 PHP
PHP文件读写操作之文件写入代码
2011/01/13 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
幻灯片带网页设计中的20个奇妙应用示例小结
2012/05/27 Javascript
使用javascipt---实现二分查找法
2013/04/10 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
js实现的tab标签切换效果代码分享
2015/08/25 Javascript
Jquery轮播效果实现过程解析
2016/03/30 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
2016/10/19 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
react中实现搜索结果中关键词高亮显示
2018/07/31 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
200行HTML+JavaScript实现年会抽奖程序
2019/01/22 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
深入浅析python定时杀进程
2016/06/06 Python
Python中str.join()简单用法示例
2018/03/20 Python
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
Python绘制频率分布直方图的示例
2019/07/08 Python
详解Python并发编程之创建多线程的几种方法
2019/08/23 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
便利店投资创业计划书
2014/02/08 职场文书
《落花生》教学反思
2014/02/25 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
学习张丽丽心得体会
2014/09/03 职场文书
计算机实训报告总结
2014/11/05 职场文书
2014年办公室个人工作总结
2014/11/12 职场文书
冰峪沟导游词
2015/02/09 职场文书
python单元测试之pytest的使用
2021/06/07 Python