fix
Helius
2021-12-22 ca17d6ee8df1e7c28645e70f43deb6b60a8890f8
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);
    }
}