java 代码获取视频时长

 

需要引入jar包 下载地址

http://www.sauronsoftware.it/projects/jave/download.php

1 package test;
 2 
 3 import java.io.File;
 4 import java.math.BigDecimal;
 5 
 6 import it.sauronsoftware.jave.Encoder;
 7 import it.sauronsoftware.jave.MultimediaInfo;
 8 
 9 
10 public class ReadVideo {
11     /**
12      * 读取视频时长
13      * @param videoPath 视频路径
14      * @return
15      */    
16     public static String readVideo(String videoPath) {
17         String durationStr = "";
18         File file = new File(videoPath); //videoPath传入值("D:\\666.mp4")
19         Encoder encoder = new Encoder();
20         long sum = 0;
21         try {
22             MultimediaInfo m = encoder.getInfo(file);
23             sum = m.getDuration()/1000; //时长sum单位:秒
24             
25         } catch (Exception e) {
26             e.printStackTrace();
27         }
28         double sum1 = (double) sum;
29         System.out.println("视频时长总秒数:"+sum1);
30         
31         BigDecimal duration =BigDecimal.valueOf(sum);
32         durationStr = durationFormatToString(duration);
33         System.out.println("视频时长:"+durationStr);
34         
35         return durationStr;
36     }
37     
38     /**
39      * 将视频时长转换成"00:00:00.000"的字符串格式            
40      * @param duration 视频时长(单位:秒)
41      * @return
42      */
43     public static String durationFormatToString(BigDecimal duration)
44     {
45         BigDecimal nine = BigDecimal.valueOf(9);
46         BigDecimal sixty = BigDecimal.valueOf(60);    
47         
48         BigDecimal second = duration.divideAndRemainder(sixty)[1];
49         BigDecimal minute = duration.subtract(second).divide(sixty).divideAndRemainder(sixty)[1];
50         BigDecimal hour = duration.subtract(second).divideToIntegralValue(BigDecimal.valueOf(3600));
51         
52         String str = "";
53         if (hour.compareTo(nine)>0)
54         {
55             str += hour.intValue() + ":";
56         }
57         else
58         {
59             str += "0" + hour.intValue() + ":";
60         }
61         if (minute.compareTo(nine)>0)
62         {
63             str += minute.intValue() + ":";
64         }
65         else
66         {
67             str += "0" + minute.intValue() + ":";
68         }
69         if (second.compareTo(nine)>0)
70         {
71             str += second.intValue() + ".000";
72         }
73         else
74         {
75             str +="0"+ second.intValue() + ".000";
76         }
77         return str;
78     }
79 
80 }

需要引入jar包 下载地址

http://www.sauronsoftware.it/projects/jave/download.php