java读取视频文件时长
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读取视频文件时长的更多相关文章
- 以springMVC为例获取上传视频文件时长
毕设项目是一个在线学习系统,教师用户有上传视频的功能,在答辩之前赶了一个demo出来,好多功能都写死了,比如课程学习进度就是被我写死在前端的一个变量,最近导师要我把项目打包发给他,这才心慌慌赶紧把这些 ...
- java 获取音频文件时长
需要导入jar包:jave 1.0.2 jar 如果是maven项目,在pom.xml文件中添加: <dependency> <groupId>it.sauronsoftwar ...
- Java 读取Properties文件时应注意的路径问题
1. 使用Class的getResourceAsStream()方法读取Properties文件(资源文件)的路径问题: InputStream in = this.getClass().getRe ...
- [原]通过配合ffmpeg.exe获取视频文件时长
import subprocess import os import time def getTime(flvpath,fid): #file_str = '1.flv' file_str = flv ...
- windows 7 下,如何统计某文件夹下 视频总时长
由于项目需要,我需要给系统加权限,这真是一个让人头疼的问题,如果要每个业务方法都加上权限判断逻辑,那真的不敢想象是多么大的工作量,日后有变动的话,我会不会发疯? 所以我必须利用之前学到的AOP编程,在 ...
- java读取properties文件时候要注意的地方
java读取properties文件时,一定要注意properties里面后面出现的空格! 比如:filepath = /home/cps/ 我找了半天,系统一直提示,没有这个路径,可是确实是存在的, ...
- java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)
java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...
- 用java读取properties文件--转
今天为了通过java读取properties文件,google了很长时间,终于找到了.现在特记录之和大家一起分享. 下面直接贴出代码:java类 public class Mytest pub ...
- java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .
背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...
随机推荐
- BZOJ4182 Shopping(点分治+树形dp)
点分治,每次考虑包含根的连通块,做树形多重背包即可,dfs序优化.注意题面给的di范围是假的,坑了我0.5h,心态炸了. #include<iostream> #include<cs ...
- MT【214】焦点弦长公式
已知椭圆焦点为$F_1(-1,0),F_2(1,0)$,且椭圆与直线$y=x-\sqrt{3}$相切,求(1)椭圆的方程(2)过$F_1$作两条相互垂直的直线$l_1,l_2$与椭圆相交于$P,Q,M ...
- MT【23】用算术几何不等式证明数列极限存在
评:如果不需要精确到3,上界的求法可以利用$$(1+\frac{1}{n})^n*\frac{1}{2}*\frac{1}{2}<(\frac{n+\frac{1}{n}*n+\frac{1}{ ...
- 自学Linux Shell12.5-while、until命令
点击返回 自学Linux命令行与Shell脚本之路 12.5-while.until命令 until 循环与 while 循环在处理方式上刚好相反. while循环用于不断执行一系列命令,也用于从输入 ...
- 【CF715E】Complete the Permutations(容斥,第一类斯特林数)
[CF715E]Complete the Permutations(容斥,第一类斯特林数) 题面 CF 洛谷 给定两个排列\(p,q\),但是其中有些位置未知,用\(0\)表示. 现在让你补全两个排列 ...
- PMOS 与 NMOS
PMOS: NMOS: NMOS是栅极高电平(VGS > Vt)导通,低电平断开,可用来控制与地之间的导通.PMOS是栅极低电平(VGS < Vt)导通,高电平断开,可用来控制与电源之间的 ...
- bzoj3277 串 (后缀数组+二分答案+ST表)
常见操作:先把所有串都连到一起,但中间加上一个特殊的符号(不能在原串中/出现过)作为分割 由于全部的子串就等于所有后缀的所有前缀,那我们对于每一个后缀,去求一个最长的前缀,来满足这个前缀在至少K个原串 ...
- noip2013火柴排队_Solution
要想对任意(ai,bi)和(aj和bj),当ai<aj时,都有bi<=bj:当ai>=aj时,bi>=bj,当对a进行升序排序后(b同时发生改变,从而不改变值,最后有a1& ...
- GUI程序开发的流程(随时删除的源码)
1.继承JFrame 2.定义需要的组件 3.创建组件 4.设置布局管理器 5.添加组件 6.显示窗体 --------------------------------------------- 小代 ...
- ansible-playbook 变量(vars)
变量优先级: ansible-playbook中定义变量: - hosts: webservers vars: http_port: 80 ①.在host里定义变量 执行结果: ②.使用var_fil ...