由于最近项目中有视频上传需要获取视频时长的需求所以就在网上查找很多方法,然后采用了如下方法
首先我们需要下载一个jar,由于maven仓库没有这个jar所以需要自己下载,然后放入maven本地仓库就可以使用了。
<dependency>
<groupId>it.sauronsoftware</groupId>
<artifactId>jave</artifactId>
<version>1.0.2</version>
</dependency>
具体代码如下
package utils;
import it.sauronsoftware.jave.Encoder;
import it.sauronsoftware.jave.MultimediaInfo;
import java.io.File;
/**
* @ClassName VideoTimes
* @Desecription 视频工具类
* @Author tkk
* @Date 2019/11/13 14:52
**/
public class VideoTimes {
/**
* @Description 获取视频时间
* @Author tkk
* @Date 2019/11/13 15:00
* @Param [videopath] 视频存储路径
* @Return java.lang.String
* @Exception
**/
public static String getVideoTimes(String videopath){
File source = new File(videopath);
Encoder encoder = new Encoder();
String length = "";
try {
MultimediaInfo m = encoder.getInfo(source);
long ls = m.getDuration()/1000;
int hour = (int) (ls/3600);
int minute = (int) (ls%3600)/60;
int second = (int) (ls-hour*3600-minute*60);
length =hour+"时"+minute+"分"+second+"秒";
} catch (Exception e) {
e.printStackTrace();
return "计算出错";
}
return length;
}
}