From ca17d6ee8df1e7c28645e70f43deb6b60a8890f8 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Wed, 22 Dec 2021 14:14:44 +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