引入jar包
在项目resources目录下创建lib包,然后把jar包丢进去

<dependency>
<groupId>it.sauronsoftware.jave</groupId>
<artifactId>jave</artifactId>
<version>1.0.2</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/jave-1.0.2.jar</systemPath>
</dependency>
展示部分伪代码()
for(MultipartFile file:alarmSynDTO.getFiles()) {
JSONObject jboj = new JSONObject();
Map<String, Object> params = new HashMap<>();
params.put("metadata", "{\"system\":\"cad\",\"module\":\"systemmanage\",\"businessId\":\"\"}");
Map<String, String> dataMap = HttpUtils.sendMultipartFilePost(citysafetyUrl.replace("31530", "31541")
+"/api/v1/attaches/upload/single", file, "file", params, 5000);
logger.info("dataMap={}",JSONObject.toJSONString(dataMap));
if("200".equals(StringUtil.toString(dataMap.get("scode")))) {
String data = dataMap.get("data");
JSONArray jsonArray = JSONArray.parseArray(data);
if(!CollectionUtils.isEmpty(jsonArray)){
Encoder encoder = new Encoder();
JSONObject object = jsonArray.getJSONObject(0);
jboj.put("fileId", object.getString("fileId"));
jboj.put("fileName", object.getString("fileName"));
jboj.put("size", object.getString("size"));
if (object.getString("fileName").endsWith(".mp4")|| object.getString("fileName").endsWith(".webm")){
File file3 = transferToFile(file);
long sum =0;
MultimediaInfo m = encoder.getInfo(file3);
long ls = m.getDuration()/1000;
sum += ls;
double sum1 = (double)sum;
System.out.println(sum1);
jboj.put("duration", sum1);
}
fileList.add(jboj);
}
}
}
/**
* @Author chenbonze
* @Description MultipartFile文件转换成File形式
* @Date 13:54 2023/3/30
* @Param [multipartFile]
* @return java.io.File
**/
public final static File transferToFile(MultipartFile multipartFile) {
//选择用缓冲区来实现这个转换即使用java 创建的临时文件 使用 MultipartFile.transferto()方法 。
File file = null;
try {
String originalFilename = multipartFile.getOriginalFilename();
String[] filename = originalFilename.split("\\.");
file = File.createTempFile(filename[0], filename[1]); //注意下面的 特别注意!!!
multipartFile.transferTo(file);
file.deleteOnExit();
} catch (IOException e) {
e.printStackTrace();
}
return file;
}