我们在对接第三方平台的时候有时会遇到,他们返给我们的只有视频链接,我们需要获取视频时长的,我们先导入依赖
<!-- 对url进行解析获取时长 --> <dependency> <groupId>ws.schild</groupId> <artifactId>jave-all-deps</artifactId> <version>2.5.1</version> </dependency>
让后复制代码
package com.netmi.modules.source.utils;
import lombok.extern.slf4j.Slf4j;
import ws.schild.jave.MultimediaInfo;
import ws.schild.jave.MultimediaObject;
import java.net.URL;
@Slf4j
public class GetUrlTime {
public static String parseDuration(String fileUrl) {
String[] length = new String[2];
try {
//
URL source = new URL(fileUrl);
// // 构造方法 接受URL对象
MultimediaObject instance = new MultimediaObject(source);
// // 构造方法 接受File对象
MultimediaObject instance = new MultimediaObject(new File(fileUrl));
MultimediaInfo result = instance.getInfo();
Long ls = result.getDuration() / 1000;
length[0] = String.valueOf(ls);
Integer hour = (int) (ls / 3600);
Integer minute = (int) (ls % 3600) / 60;
Integer second = (int) (ls - hour * 3600 - minute * 60);
String hr = hour.toString();
String mi = minute.toString();
String se = second.toString();
if (hr.length() < 2) {
hr = "0" + hr;
}
if (mi.length() < 2) {
mi = "0" + mi;
}
if (se.length() < 2) {
se = "0" + se;
}
String noHour = "00";
if (noHour.equals(hr)) {
length[1] = mi + ":" + se;
} else {
length[1] = hr + ":" + mi + ":" + se;
}
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return length[1];
}
}