搜索了很多的代码都是无效的,不知道是因为我是用的是windows10 的原因还是因为jave.jar年代久远的原因导致我运行的代码一直获取文件为空,然后看到官网中有挂出新开源项目jave2的https://github.com/a-schild/jave2
以下是jave2获取视频时长的实例代码
是用环境 eclipse,JDK1.8,windows10,jave2
各种操作平台的依赖包maven地址:http://mvnrepository.com/artifact/ws.schild/jave-all-deps
package ReadVideoTime;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.nio.channels.FileChannel;
import ws.schild.jave.MultimediaInfo;
import ws.schild.jave.MultimediaObject;
public class Read {
public static void main(String[] args) {
Read r=new Read();
String length=r.ReadVideoTime("F:\\hiro.avi");
System.out.println("总时长:"+length);
}
/**
*
* @描述:获取视频时长
* @时间:2018年8月28日 上午10:18:59
* @param source
* @return
*/
String ReadVideoTime(String FileUrl) {
File source=new File(FileUrl);
String length = "";
try {
MultimediaObject instance = new MultimediaObject(source);
MultimediaInfo result = instance.getInfo();
long ls = result.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 length;
}
/**
*
* @描述:获取视频大小
* @时间:2018年8月28日 上午10:30:17
* @param source
* @return
*/
@SuppressWarnings({ "resource" })
String ReadVideoSize(File source) {
FileChannel fc = null;
String size = "";
try {
FileInputStream fis = new FileInputStream(source);
fc = fis.getChannel();
BigDecimal fileSize = new BigDecimal(fc.size());
size = fileSize.divide(new BigDecimal(1048576), 2,RoundingMode.HALF_UP) + "MB";
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (null != fc) {
try {
fc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return size;
}
}