Explorar o código

修改音频文件合成调用方式

syh %!s(int64=5) %!d(string=hai) anos
pai
achega
f1b532bc5b

+ 24 - 13
jeecg-boot-module-system/src/main/java/org/jeecg/modules/opencv/service/impl/FfmpegServiceImpl.java

@@ -89,19 +89,30 @@ public class FfmpegServiceImpl implements IFfmpegService {
      */
     @Override
     public void audioMosaic(String audioPart1, String audioPart2, String finalAudio) {
-        List<String> command = new ArrayList<>();
-        command.add(FFMPEG_PATH);
-        command.add("-i");
-        command.add(audioPart1);
-        command.add("-i");
-        command.add(audioPart2);
-        command.add("-filter_complex");
-        command.add("\"[0:0] [1:0] concat=n=2:v=0:a=1 [a]\"");
-        command.add("-map");
-        command.add("[a]");
-        command.add(finalAudio);
-        runCommand(command);
-        log.info("音频文件合成成功:{}", finalAudio);
+        StringBuffer command = new StringBuffer();
+        command.append(FFMPEG_PATH);
+        command.append(" -i ");
+        command.append(audioPart1);
+        command.append(" -i ");
+        command.append(audioPart2);
+        command.append(" -filter_complex ");
+        command.append("\"[0:0] [1:0] concat=n=2:v=0:a=1 [a]\"");
+        command.append(" -map ");
+        command.append(" [a] ");
+        command.append(finalAudio);
+        Runtime runtime = Runtime.getRuntime();
+        Process pro = null;
+        try {
+            pro = runtime.exec(command.toString());
+            int status = pro.waitFor();
+            if (status == 0) {
+                log.info("音频文件合成成功:{}", command.toString());
+            } else {
+                log.info("视音频文件合成失败:{}", command.toString());
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
     /**