Java获取播放文件的时长

package org.jeecg.modules.diy.util;

import it.sauronsoftware.jave.Encoder;
import it.sauronsoftware.jave.InputFormatException;
import it.sauronsoftware.jave.MultimediaInfo;

import java.io.File;

public class VideoTool {
    /**
     * Java获取播放文件的时长,支持的播放文件的格式有:mp3、mp4、f4v、3gp、flv、rmvb、mkv,其它格式没有测试。
     *
     * @author 高焕杰
     */
    public String getPlayTime(String playFilePath) {
        String playTime = null;
        File playFile = new File(playFilePath);
        if (playFile.exists()) {
            try {
                Encoder encoder = new Encoder();
                MultimediaInfo multimediaInfo = encoder.getInfo( playFile);
                playTime = this.convertTimeFormat((multimediaInfo.getDuration())/1000);
            } catch (InputFormatException e) {
                e.printStackTrace();
            } catch (it.sauronsoftware.jave.EncoderException e) {
                e.printStackTrace();
            }
        }
        return  playTime;
    }




    /**
     * 将秒转化为时分秒的格式
     *
     */
    public String convertTimeFormat(long minuteParam) {
        String timeString = null;
        long hour = 0;
        long minute = 0;
        long second = 0;
        if (minuteParam <= 0){
            return "00:00";
        }else {
            minute = minuteParam / 60;
            if (minute < 60) {
                second = minuteParam % 60;
                timeString = "00:" + unitFormat(minute) + ":" + unitFormat(second);
            } else {
                hour = minute / 60;
                if (hour > 99){
                    return "99:59:59";
                }
                minute = minute % 60;
                second = minuteParam - hour * 3600 - minute * 60;
                timeString = unitFormat(hour) + ":" + unitFormat(minute) + ":" + unitFormat(second);
            }
        }
        return timeString;
    }

    private static String unitFormat(long param) {
        String returnString = null;
        if(param >= 0 && param < 10){
            returnString = "0" + Long.toString(param);
        } else {
            returnString = "" + param;
        }
        return returnString;
    }


    public static void main(String[] argus) {
        VideoTool videoTool = new VideoTool();
        String test = "";
        test = videoTool.getPlayTime("E:\\20201214-福建冠悦-电信-爱音乐商务音视频彩铃日报表-质检成功\\124超达汽修.mp4");
        System.out.println(test);
        System.out.println("视频播放时长为:" + videoTool.getPlayTime("C:\\Users\\data-1\\Desktop\\在线DIY\\XMZQ202012030002.mp3"));
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值