From 822b60fd6a7d73708b908123e6d5b976fb38264a Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 22 Dec 2021 14:59:25 +0800
Subject: [PATCH] fix
---
src/main/java/cc/mrbird/febs/common/utils/FileUtil.java | 34 ++++++++++++++++++++++++++++++++++
1 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/utils/FileUtil.java b/src/main/java/cc/mrbird/febs/common/utils/FileUtil.java
index 69a5d5d..9cc622c 100644
--- a/src/main/java/cc/mrbird/febs/common/utils/FileUtil.java
+++ b/src/main/java/cc/mrbird/febs/common/utils/FileUtil.java
@@ -1,10 +1,16 @@
package cc.mrbird.febs.common.utils;
import cc.mrbird.febs.common.entity.FebsConstant;
+import cc.mrbird.febs.common.exception.FebsException;
import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
+import ws.schild.jave.EncoderException;
+import ws.schild.jave.MultimediaInfo;
+import ws.schild.jave.MultimediaObject;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
@@ -23,6 +29,8 @@
public class FileUtil {
private static final int BUFFER = 1024 * 8;
+ private static ImmutableList<String> videoSuffixList = ImmutableList.of("mp4", "mov", "avi", "mkv", "m4v", "wmv",
+ "asf", "asx", "rm", "rmvb", "3gp", "dat", "flv", "vob");
/**
* 压缩文件或目录
@@ -162,4 +170,30 @@
}
}
}
+
+ public static boolean isVideo(File file) {
+ return videoSuffixList.contains(FilenameUtils.getExtension(file.getName()));
+ }
+
+ /**
+ * 获取视频时长(秒)
+ *
+ * @param file
+ * @return
+ */
+ public static Integer getVideoTimeSecond(File file) {
+ if (!isVideo(file)){
+ throw new FebsException("不是视频");
+ }
+
+ MultimediaObject multimediaObject = new MultimediaObject(file);
+ MultimediaInfo info = null;
+ try {
+ info = multimediaObject.getInfo();
+ } catch (EncoderException e) {
+ log.error("视频异常:", e);
+ throw new FebsException("视频处理异常");
+ }
+ return (int) Math.ceil((double) info.getDuration() / 1000);
+ }
}
--
Gitblit v1.9.1