From bde0e13682ed75d2e8c0cb8a1fd6a96bb92f1dd8 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 14 三月 2022 18:34:25 +0800
Subject: [PATCH] #394

---
 src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java |   21 +++++++++++++--------
 1 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java
index 30a1509..5d1e8af 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java
@@ -45,12 +45,8 @@
 
         Map<String, Object> param = new HashMap<>();
         int result = -1;
-        /**
-         * 涓嶈缃帹娴佺鍙g鍒欎娇鐢ㄩ殢鏈虹鍙�
-         */
-        if (StringUtils.isEmpty(mediaServerItem.getSendRtpPortRange())){
-            param.put("port", 0);
-        }else {
+        // 涓嶈缃帹娴佺鍙g鍒欎娇鐢ㄩ殢鏈虹鍙�
+        if (!StringUtils.isEmpty(mediaServerItem.getSendRtpPortRange())){
             int newPort = getPortFromportRange(mediaServerItem);
             param.put("port", newPort);
         }
@@ -205,7 +201,7 @@
     /**
      * 璋冪敤zlm RESTful API 鈥斺�� startSendRtp
      */
-    public Boolean startSendRtpStream(MediaServerItem mediaServerItem, Map<String, Object>param) {
+    public JSONObject startSendRtpStream(MediaServerItem mediaServerItem, Map<String, Object>param) {
         Boolean result = false;
         JSONObject jsonObject = zlmresTfulUtils.startSendRtp(mediaServerItem, param);
         if (jsonObject == null) {
@@ -216,7 +212,7 @@
         } else {
             logger.error("RTP鎺ㄦ祦澶辫触: " + jsonObject.getString("msg"));
         }
-        return result;
+        return jsonObject;
     }
 
     /**
@@ -242,9 +238,18 @@
      */
     public int totalReaderCount(MediaServerItem mediaServerItem, String app, String streamId) {
         JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo(mediaServerItem, app, "rtmp", streamId);
+        Integer code = mediaInfo.getInteger("code");
         if (mediaInfo == null) {
             return 0;
         }
+        if ( code < 0) {
+            logger.warn("鏌ヨ娴�({}/{})鏄惁鏈夊叾瀹冭鐪嬭�呮椂寰楀埌锛� {}", app, streamId, mediaInfo.getString("msg"));
+            return -1;
+        }
+        if ( code == 0 && ! mediaInfo.getBoolean("online")) {
+            logger.warn("鏌ヨ娴�({}/{})鏄惁鏈夊叾瀹冭鐪嬭�呮椂寰楀埌锛� {}", app, streamId, mediaInfo.getString("msg"));
+            return -1;
+        }
         return mediaInfo.getInteger("totalReaderCount");
     }
 

--
Gitblit v1.8.0