From 226b979027a05d371501d64f7ce040a6fe2a60e2 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 29 七月 2023 14:59:04 +0800
Subject: [PATCH] 优化外部exe程序启动方式

---
 ard-work/src/main/java/com/ruoyi/media/service/impl/WebrtcService.java |   40 +++++++++++++---------------------------
 1 files changed, 13 insertions(+), 27 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/media/service/impl/WebrtcService.java b/ard-work/src/main/java/com/ruoyi/media/service/impl/WebrtcService.java
index 299d2e3..41dc8c6 100644
--- a/ard-work/src/main/java/com/ruoyi/media/service/impl/WebrtcService.java
+++ b/ard-work/src/main/java/com/ruoyi/media/service/impl/WebrtcService.java
@@ -1,5 +1,6 @@
 package com.ruoyi.media.service.impl;
 
+import com.ruoyi.utils.tools.CmdUtils;
 import com.sun.jna.Platform;
 import org.springframework.stereotype.Component;
 
@@ -23,36 +24,21 @@
     @PostConstruct
     public void init() {
         if (Platform.isWindows()) {
-            // String exePath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "webrtc" + File.separator + "setup.bat";
-            // String[] cmd = {"cmd", "/c", "start", exePath};
-            String exePath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "webrtc" + File.separator + "webrtc-streamer.exe";
+            String processName = "webrtc-streamer.exe"; // 鏇挎崲涓哄疄闄呯殑exe绋嬪簭鍚嶇О
+            String exePath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "webrtc" + File.separator + processName;
             List<String> cmd = new ArrayList<>();
             cmd.add(exePath);
-            cmd.add("-o");
             cmd.add("-H127.0.0.1:8000");
-            commandStart(cmd);
-        }
-    }
-    public static void commandStart(List<String> command) {
-        command.forEach(v -> System.out.print(v + " "));
-        System.out.println();
-        System.out.println();
-        ProcessBuilder builder = new ProcessBuilder();
-        //姝e父淇℃伅鍜岄敊璇俊鎭悎骞惰緭鍑�
-        builder.redirectErrorStream(true);
-        builder.command(command);
-        //寮�濮嬫墽琛屽懡浠�
-        Process process = null;
-        try {
-           process = builder.start();
-//            //濡傛灉浣犳兂鑾峰彇鍒版墽琛屽畬鍚庣殑淇℃伅锛岄偅涔堜笅闈㈢殑浠g爜涔熸槸闇�瑕佺殑
-//            String line = "";
-//            BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
-//            while ((line = br.readLine()) != null) {
-//                System.out.println(line);
-//            }
-       } catch (IOException e) {
-            e.printStackTrace();
+            cmd.add("-o");
+            if (CmdUtils.isProcessRunning(processName)) {
+                // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋�
+                CmdUtils.stopProcess(processName);
+            }
+            // 鍚姩鍚庡彴杩涚▼
+             CmdUtils.commandStart(processName,cmd);
+            // 鍚姩cmd绐楀彛
+//            String[] command = {"cmd", "/c", "start", exePath, "-H127.0.0.1:8000", "-o"};
+//            CmdUtils.commandStart(command);
         }
     }
 }

--
Gitblit v1.9.3