From df34954c9eee1e870248368dd77a441509ac1dc2 Mon Sep 17 00:00:00 2001
From: lawrencehj <1934378145@qq.com>
Date: 星期二, 09 三月 2021 20:05:37 +0800
Subject: [PATCH] 实现级联点播RTP推送

---
 src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java |   47 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 46 insertions(+), 1 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 a556ba7..819c6a8 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
@@ -105,7 +105,7 @@
      * @param tcp 鏄惁涓簍cp
      * @return SendRtpItem
      */
-    public SendRtpItem createSendRtpItem(String ip, int port, String ssrc, String platformId, String channelId, boolean tcp){
+    public SendRtpItem createSendRtpItem(String ip, int port, String ssrc, String platformId, String deviceId, String channelId, boolean tcp){
         String playSsrc = SsrcUtil.getPlaySsrc();
         int localPort = createRTPServer(SsrcUtil.getPlaySsrc());
         if (localPort != -1) {
@@ -119,9 +119,54 @@
         sendRtpItem.setPort(port);
         sendRtpItem.setSsrc(ssrc);
         sendRtpItem.setPlatformId(platformId);
+        sendRtpItem.setDeviceId(deviceId);
         sendRtpItem.setChannelId(channelId);
         sendRtpItem.setTcp(tcp);
         sendRtpItem.setLocalPort(localPort);
         return sendRtpItem;
     }
+
+    /**
+     * 
+     */
+    public Boolean startSendRtpStream(Map<String, Object>param) {
+        Boolean result = false;
+        JSONObject jsonObject = zlmresTfulUtils.startSendRtp(param);
+        System.out.println(jsonObject);
+        if (jsonObject != null) {
+            switch (jsonObject.getInteger("code")){
+                case 0:
+                    result= true;
+                    logger.error("RTP鎺ㄦ祦璇锋眰鎴愬姛锛屾湰鍦版帹娴佺鍙o細" + jsonObject.getString("local_port"));
+                    break;
+                // case -300: // id宸茬粡瀛樺湪
+                //     result = false;
+                //     break;
+                // case -400: // 绔彛鍗犵敤
+                //     result= false;
+                //     break;
+                default:
+                    logger.error("RTP鎺ㄦ祦澶辫触: " + jsonObject.getString("msg"));
+                    break;
+            }
+        }else {
+            //  妫�鏌LM鐘舵��
+            logger.error("RTP鎺ㄦ祦澶辫触: 璇锋鏌LM鏈嶅姟");
+        }
+        return result;
+    }
+
+    /**
+     * 
+     */
+    public Boolean isRtpReady(String streamId) {
+        JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo("rtp", "rtmp", streamId);
+        if (mediaInfo.getInteger("code") == 0 && mediaInfo.getBoolean("online")) {
+            logger.info("璁惧RTP鎺ㄦ祦鎴愬姛");
+            return true;
+        } else {
+            logger.info("璁惧RTP鎺ㄦ祦鏈畬鎴�");
+            return false;
+        }
+    }
 }

--
Gitblit v1.8.0