From 6e8071d820aa55173e64fd25609caa3b6b9af98a Mon Sep 17 00:00:00 2001
From: bradyx <xushanbin@zdjtcm.com>
Date: 星期三, 15 五月 2024 13:52:16 +0800
Subject: [PATCH] fix: 系统启动时,停止已启动国标推流抛出异常被系统捕获,启动服务失败。

---
 src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java |   28 +++++++++++++++++++++++++++-
 1 files changed, 27 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java
index ca1eb52..4cfdaf3 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java
@@ -94,6 +94,8 @@
         MediaServer mediaServer = new MediaServer();
         mediaServer.setIp(ip);
         mediaServer.setHttpPort(port);
+        mediaServer.setFlvPort(port);
+        mediaServer.setWsFlvPort(port);
         mediaServer.setSecret(secret);
         JSONObject responseJSON = zlmresTfulUtils.getMediaServerConfig(mediaServer);
         if (responseJSON == null) {
@@ -109,12 +111,15 @@
         }
         mediaServer.setId(zlmServerConfig.getGeneralMediaServerId());
         mediaServer.setHttpSSlPort(zlmServerConfig.getHttpPort());
+        mediaServer.setFlvSSLPort(zlmServerConfig.getHttpPort());
+        mediaServer.setWsFlvSSLPort(zlmServerConfig.getHttpPort());
         mediaServer.setRtmpPort(zlmServerConfig.getRtmpPort());
         mediaServer.setRtmpSSlPort(zlmServerConfig.getRtmpSslPort());
         mediaServer.setRtspPort(zlmServerConfig.getRtspPort());
         mediaServer.setRtspSSLPort(zlmServerConfig.getRtspSSlport());
         mediaServer.setRtpProxyPort(zlmServerConfig.getRtpProxyPort());
         mediaServer.setStreamIp(ip);
+
         mediaServer.setHookIp(sipIp.split(",")[0]);
         mediaServer.setSdpIp(ip);
         mediaServer.setType("zlm");
@@ -131,11 +136,32 @@
             param.put("ssrc", ssrc);
         }
         JSONObject jsonObject = zlmresTfulUtils.stopSendRtp(mediaInfo, param);
-        return (jsonObject != null && jsonObject.getInteger("code") == 0);
+        if (jsonObject == null || jsonObject.getInteger("code") != 0 ) {
+            logger.error("鍋滄鍙戞祦澶辫触: {}, 鍙傛暟锛歿}", jsonObject.getString("msg"), JSON.toJSONString(param));
+            throw new ControllerException(jsonObject.getInteger("code"), jsonObject.getString("msg"));
+        }
+        return true;
 
     }
 
     @Override
+    public boolean initStopSendRtp(MediaServer mediaInfo, String app, String stream, String ssrc) {
+        Map<String, Object> param = new HashMap<>();
+        param.put("vhost", "__defaultVhost__");
+        param.put("app", app);
+        param.put("stream", stream);
+        if (!ObjectUtils.isEmpty(ssrc)) {
+            param.put("ssrc", ssrc);
+        }
+        JSONObject jsonObject = zlmresTfulUtils.stopSendRtp(mediaInfo, param);
+        if (jsonObject == null || jsonObject.getInteger("code") != 0 ) {
+            logger.error("鍋滄鍙戞祦澶辫触: {}, 鍙傛暟锛歿}", jsonObject.getString("msg"), JSON.toJSONString(param));
+            return false;
+        }
+        return true;
+    }
+
+    @Override
     public boolean deleteRecordDirectory(MediaServer mediaServer, String app, String stream, String date, String fileName) {
         logger.info("[zlm-deleteRecordDirectory] 鍒犻櫎纾佺洏鏂囦欢, server: {} {}:{}->{}/{}", mediaServer.getId(), app, stream, date, fileName);
         JSONObject jsonObject = zlmresTfulUtils.deleteRecordDirectory(mediaServer, app,

--
Gitblit v1.8.0