aijinhui
2023-09-22 8c94232e63a6f28682e629dbfa92873d3cbf964a
ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java
@@ -44,17 +44,13 @@
    @Value("${mediamtx.host}")
    String mediamtxHost;
    @Value("${mediamtx.enabled}")
    Boolean mediamtxEnabled;
    @Value("${mediamtx.software_decoding}")
    Boolean softwareDecoding;
    String processName = "mediamtx.exe";
    @Override
    public void run(ApplicationArguments args) {
        try {
            log.info("开始加载流媒体列表");
            log.debug("开始加载流媒体列表");
            List<StreamInfo> paths = paths();
            for (StreamInfo path : paths) {
                mediaClient.removePath(path.getName());
@@ -70,41 +66,6 @@
            }
        } catch (Exception ex) {
            log.error("加载流媒体列表异常:" + ex.getMessage());
        }
    }
    @PostConstruct
    public void initMediaMtx() {
        if (mediamtxEnabled) {
            log.info("初始化启动mediaMTX");
            if (Platform.isWindows()) {
                String exePath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "mediamtx" + File.separator + "mediamtx.exe";
                String ymlPath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "mediamtx" + File.separator + "mediamtx.yml";
                List<String> cmd = new ArrayList<>();
                cmd.add(exePath);
                cmd.add(ymlPath);
                if (CmdUtils.isProcessRunning(processName)) {
                    // 进程已经在运行,结束该进程
                    CmdUtils.stopProcess(processName);
                }
                // 启动后台进程
                CmdUtils.commandStart(processName, cmd, null);
                // 启动cmd窗口
//            String[] command = {"cmd","/c","start",exePath,ymlPath};
//            CmdUtils.commandStart(command);
            }
        }
    }
    @PreDestroy
    public void destroyMediaMtx() {
        if (mediamtxEnabled) {
            log.info("销毁mediaMtx");
            if (CmdUtils.isProcessRunning(processName)) {
                // 进程已经在运行,结束该进程
                CmdUtils.stopProcess(processName);
            }
        }
    }