From f0afca8e5611e46557f69cd22850c630388d329f Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 22 Dec 2021 14:46:31 +0800
Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/xc-video

---
 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