如何使用Java代码获取播放文件的时长

 我来答
默释流沙
2017-05-16 · TA获得超过925个赞
知道小有建树答主
回答量:795
采纳率:46%
帮助的人:289万
展开全部
public static void main(String[] args) {    
        // *.mp4,*.flv,*..3gp格式均可,其他自行测试    
        // <vedio_path>是你的视频文件路径    
        File source = new File("<vedio_path>\\Avengers2.flv");    
        FFMPEGLocator locator = new FFMPEGLocator() {    
            @Override    
            protected String getFFMPEGExecutablePath() {    
                // <ffmpeg_path>是你的ffmpeg.exe路径    
                return "<ffmpeg_path>\\ffmpeg.exe";    
            }    
        };    
        Encoder encoder = new Encoder(locator);    
        try {    
            MultimediaInfo m = encoder.getInfo(source);    
            long ls = m.getDuration();    
            // 输出毫秒数    
            System.out.println(ls);    
            // 输出0时0分0秒0毫秒的格式    
            System.out.println("此视频时长为:" + ls / (60 * 60 * 1000) + "时" + (ls % (60 * 60 * 1000)) / 60000 + "分"    
                    + ((ls % (60 * 60 * 1000)) % 60000) / 1000 + "秒" + (((ls % (60 * 60 * 1000)) % 60000) % 1000)    
                    + "毫秒!");    
        } catch (Exception e) {    
            e.printStackTrace();    
        }    
    }
177******30
2017-07-22 · 知道合伙人互联网行家
177******30
知道合伙人互联网行家
采纳数:195 获赞数:398
从事网站优化行业站内优化多年,对网络优化有独特的见解

向TA提问 私信TA
展开全部
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public static void main(String[] args) {
// *.mp4,*.flv,*..3gp格式均可,其他自行测试
// <vedio_path>是你的视频文件路径
File source = new File("<vedio_path>\\Avengers2.flv");
FFMPEGLocator locator = new FFMPEGLocator() {
@Override
protected String getFFMPEGExecutablePath() {
// <ffmpeg_path>是你的ffmpeg.exe路径
return "<ffmpeg_path>\\ffmpeg.exe";
}
};
Encoder encoder = new Encoder(locator);
try {
MultimediaInfo m = encoder.getInfo(source);
long ls = m.getDuration();
// 输出毫秒数
System.out.println(ls);
// 输出0时0分0秒0毫秒的格式
System.out.println("此视频时长为:" + ls / (60 * 60 * 1000) + "时" + (ls % (60 * 60 * 1000)) / 60000 + "分"
+ ((ls % (60 * 60 * 1000)) % 60000) / 1000 + "秒" + (((ls % (60 * 60 * 1000)) % 60000) % 1000)
+ "毫秒!");
} catch (Exception e) {
e.printStackTrace();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式