1.下载jar包:http://www.sauronsoftware.it/projects/jave/index.php

2.上代码

     @RequestMapping(value = "amendFile.htm", produces = "application/json;charset=UTF-8")
@ResponseBody
public String amendFile(MultipartFile file, HttpServletRequest request,
HttpServletResponse response, String equid,String begintime,String endtime) {
log.info(this.getClass().getSimpleName() + "."
+ Thread.currentThread().getStackTrace()[1].getMethodName()
+ "()----start"); String path = request.getSession().getServletContext()
.getRealPath("/")+"resources/"+equid+"/"+begintime.substring(0,begintime.length()-6)+"/";
// 通过文件ID 获取文件存储路径
if (file.isEmpty()) {
return "empty";
}
Map<String, Object> map = new HashMap<String, Object>();
try {
/* 写入文件 */
File targetFile = new File(path, file.getOriginalFilename());
if (!targetFile.exists()) {
targetFile.mkdirs();
}
file.transferTo(targetFile); // 转储
Encoder encoder = new Encoder();
// zp add 读取视频时长 2017-07-31
try {
MultimediaInfo m = encoder.getInfo(targetFile);
long ls = m.getDuration();
ls = Math.round((double)ls/1000);
map.put("timeLength", Math.round(ls));
} catch (Exception e) {
e.printStackTrace();
}
// 读取视频时长结束 2017-07-31
response.addHeader("Access-Control-Allow-Origin", "*");
if(targetFile.exists()){ map.put("success", "success");
ObjectMapper mapper = new ObjectMapper();
String content = mapper.writeValueAsString(map);
return content;
}else{
map.put("error", "error");
ObjectMapper mapper = new ObjectMapper();
String content = mapper.writeValueAsString(map);
return content;
} } catch (Exception e) {
e.printStackTrace();
}
log.info(this.getClass().getSimpleName() + "."
+ Thread.currentThread().getStackTrace()[1].getMethodName()
+ "()----end");
return "success";
}

其中最重要的代码就是:

  // zp add 读取视频时长 2017-07-31
try {
MultimediaInfo m = encoder.getInfo(targetFile);
long ls = m.getDuration();
ls = Math.round((double)ls/1000);
map.put("timeLength", Math.round(ls));
} catch (Exception e) {
e.printStackTrace();
}
// 读取视频时长结束 2017-07-31

java读取视频文件时长的更多相关文章

  1. 以springMVC为例获取上传视频文件时长

    毕设项目是一个在线学习系统,教师用户有上传视频的功能,在答辩之前赶了一个demo出来,好多功能都写死了,比如课程学习进度就是被我写死在前端的一个变量,最近导师要我把项目打包发给他,这才心慌慌赶紧把这些 ...

  2. java 获取音频文件时长

    需要导入jar包:jave 1.0.2 jar 如果是maven项目,在pom.xml文件中添加: <dependency> <groupId>it.sauronsoftwar ...

  3. Java 读取Properties文件时应注意的路径问题

    1. 使用Class的getResourceAsStream()方法读取Properties文件(资源文件)的路径问题:  InputStream in = this.getClass().getRe ...

  4. [原]通过配合ffmpeg.exe获取视频文件时长

    import subprocess import os import time def getTime(flvpath,fid): #file_str = '1.flv' file_str = flv ...

  5. windows 7 下,如何统计某文件夹下 视频总时长

    由于项目需要,我需要给系统加权限,这真是一个让人头疼的问题,如果要每个业务方法都加上权限判断逻辑,那真的不敢想象是多么大的工作量,日后有变动的话,我会不会发疯? 所以我必须利用之前学到的AOP编程,在 ...

  6. java读取properties文件时候要注意的地方

    java读取properties文件时,一定要注意properties里面后面出现的空格! 比如:filepath = /home/cps/ 我找了半天,系统一直提示,没有这个路径,可是确实是存在的, ...

  7. java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)

     java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...

  8. 用java读取properties文件--转

    今天为了通过java读取properties文件,google了很长时间,终于找到了.现在特记录之和大家一起分享.     下面直接贴出代码:java类 public class Mytest pub ...

  9. java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .

    背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...

随机推荐

  1. Laravel框架简单的用户管理[CURD]操作

    一个基于laravel和bootstrap的简单的用户管理,适合刚入门的我们,在做的过程中可以加深自己对laravel基础理解,里面存在一些问题,还未修改,比如css和js的引入,表单提交地址等不规范 ...

  2. Python的二叉树实现

    二叉树需要实现的功能及思路 找到最小值 没什么好说的就是二叉树最左下的顶点 找到最大值 没什么好说的就是二叉树最右下的顶点 插入 分情况,如果二叉树为空那么直接直接设置成根节点就好了.否则就逐层向下, ...

  3. .NET:C# 如何实现的闭包?

    背景 C# 在编译器层面为我们提供了闭包机制(Java7 和 Go 也是这种思路),本文简单的做个解释. 背景知识 你必须了解:引用类型.值类型.引用.对象.值类型的值(简称值). 关于引用.对象和值 ...

  4. 工具函数判断data为整型字符串

    /** * 如果data是整型字符串,则转为整型,否则原样返回 * @param {*} data 整型字符串 */ export const stringToInt = (data) => { ...

  5. kindeditor上传图片的大小在哪控制

    请修改修改了multiimage.js 的imageSizeLimit = K.undef(self.imageSizeLimit, '3MB') 大小设置级可以

  6. ansible-playbook组件解析及操作全解

    转载于http://www.178linux.com/7001 一.ansible-playbook介绍: playbook是由一个或多个”play”组成的列表.play的主要功能在于将事先归为一组的 ...

  7. 教你如何用Meterpreter渗透Win系统

    在这篇文章中,我们将跟大家介绍如何使用Meterpreter来收集目标Windows系统中的信息,获取用户凭证,创建我们自己的账号,启用远程桌面,进行屏幕截图,以及获取用户键盘记录等等. 相关Payl ...

  8. python3 操作MYSQL实例及异常信息处理--用traceback模块

    # 用traceback模块查看异常import traceback import pymysql db = pymysql.connect(host='localhost', user='root' ...

  9. 怎样解决Myeclipse内存溢出?

    打开myeclipse 10安装目录下的myeclipse.ini文件 打开文件,将文件圈圈中的内容设置如下图: 上面是其中一种解决方案,下面介绍第二种解决方案 设置Default VM Argume ...

  10. Java_myBatis_xml代理写法

    这种开发方式只需要写好Mapper.xml和对应的Interface就可以了. 1.编写Mapper.xml <?xml version="1.0" encoding=&qu ...