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读取该 ...
随机推荐
- Leetcode 347.前K个高频元素 By Python
给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], ...
- 【BZOJ2001】[HNOI2010]城市建设(CDQ分治,线段树分治)
[BZOJ2001][HNOI2010]城市建设(CDQ分治,线段树分治) 题面 BZOJ 洛谷 题解 好神仙啊这题.原来想做一直不会做(然而YCB神仙早就切了),今天来怒写一发. 很明显这个玩意换种 ...
- 趣谈生成函数 =v=
趣谈生成函数 =v= 今天luyouqi在洛谷随机跳题rand出来一道生成函数板子题,然后我给做了(雾 发现小伙伴们还不会生成函数,于是我试着写这篇生成函数简介.(其实我也不怎么会生成函数这么高级的东 ...
- 导入Spreadsheet到sharepoint2013报错
当导入Spreadsheet到sharepoint2013会报下面的错: an unexpected error has occurred -2147467259 The specified file ...
- 2018 省选 T1 一双木棋
题目描述 菲菲和牛牛在一块n 行m 列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手. 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束. 落子的规则是:一个格子可以落子当且仅当 ...
- 初见mobX
先看如下的代码 const {observable}= mobox; const {observer}=mobxReact; const {Component}=React; const appSta ...
- VUE在BODY上绑定enter事件
mounted () { this.bodyListener = (e) => { if (e.keyCode === 13 && e.target === document.b ...
- servlet3.0获取参数与文件上传代码示例
转: servlet3.0获取参数与文件上传代码示例 2018年08月26日 20:25:35 苏凯勇往直前 阅读数:98 package com.igeek.servlet; import ...
- 四个修改Docker默认存储位置的方法
方法一.软链接 默认情况下Docker的存放位置为:/var/lib/docker 可以通过下面命令查看具体位置: sudo docker info | grep "Docker Root ...
- k8s部署prometheus
https://www.kancloud.cn/huyipow/prometheus/527092 https://songjiayang.gitbooks.io/prometheus/content ...