详解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 相关文章推荐
利用404错误页面实现UrlRewrite的实现代码
Aug 20 Javascript
JQuery 确定css方框模型(盒模型Box Model)
Jan 22 Javascript
JS逆序遍历实现代码
Dec 02 Javascript
浅谈javascript 迭代方法
Jan 21 Javascript
JS不完全国际化&amp;本地化手册 之 理论篇
Sep 27 Javascript
JS文件上传神器bootstrap fileinput详解
Jan 28 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
Aug 04 Javascript
详谈js的变量提升以及使用方法
Oct 06 Javascript
vue+webpack中配置ESLint
Nov 07 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
Apr 09 Javascript
仿ElementUI实现一个Form表单的实现代码
Apr 23 Javascript
Array.filter中如何正确使用Async
Nov 04 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/10/08 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
php数组添加元素方法小结
2014/12/20 PHP
CI(CodeIgniter)框架视图中加载视图的方法
2017/03/24 PHP
php生成微信红包数组的方法
2019/09/05 PHP
Javascript 事件流和事件绑定
2009/07/16 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
理解Javascript图片预加载
2016/02/23 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
bootstrap下拉列表与输入框组结合的样式调整
2016/10/08 Javascript
Yarn的安装与使用详细介绍
2016/10/25 Javascript
微信小程序三级联动地址选择器的实例代码
2017/07/12 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
JS中FileReader类实现文件上传及时预览功能
2020/03/27 Javascript
uniapp电商小程序实现订单30分钟倒计时
2020/11/01 Javascript
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
详解Python的Django框架中的中间件
2015/07/24 Python
Python编写简单的HTML页面合并脚本
2016/07/11 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
根据DataFrame某一列的值来选择具体的某一行方法
2018/07/03 Python
Python for循环与range函数的使用详解
2019/03/23 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
pyqt5 删除layout中的所有widget方法
2019/06/25 Python
Python模块/包/库安装的六种方法及区别
2020/02/24 Python
python读取hdfs并返回dataframe教程
2020/06/05 Python
Python smtp邮件发送模块用法教程
2020/06/15 Python
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
两道JAVA笔试题
2016/09/14 面试题
历史专业个人求职信范文
2013/12/07 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
浅谈Golang 嵌套 interface 的赋值问题
2021/04/29 Golang
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript