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")); } }