package com.ruoyi.media.service.impl; import com.sun.jna.Platform; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; /** * @Description: * @ClassName: webrtcService * @Author: 刘苏义 * @Date: 2023年07月26日13:43:07 * @Version: 1.0 **/ @Component public class WebrtcService { @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"; List cmd = new ArrayList<>(); cmd.add(exePath); cmd.add("-o"); cmd.add("-H127.0.0.1:8000"); commandStart(cmd); } } public static void commandStart(List command) { command.forEach(v -> System.out.print(v + " ")); System.out.println(); System.out.println(); ProcessBuilder builder = new ProcessBuilder(); //正常信息和错误信息合并输出 builder.redirectErrorStream(true); builder.command(command); //开始执行命令 Process process = null; try { process = builder.start(); // //如果你想获取到执行完后的信息,那么下面的代码也是需要的 // String line = ""; // BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream())); // while ((line = br.readLine()) != null) { // System.out.println(line); // } } catch (IOException e) { e.printStackTrace(); } } }