From 11d40d3e220a3f12453136fedbbdc99f93c6c1b1 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 15 三月 2022 10:47:07 +0800
Subject: [PATCH] #396

---
 src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java |   41 ++++++++++++++++++++++++++++-------------
 1 files changed, 28 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
index 6a5642e..d369587 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
@@ -46,8 +46,7 @@
  * 濯掍綋鏈嶅姟鍣ㄨ妭鐐圭鐞�
  */
 @Service
-@Order(value=2)
-public class MediaServerServiceImpl implements IMediaServerService, CommandLineRunner {
+public class MediaServerServiceImpl implements IMediaServerService {
 
     private final static Logger logger = LoggerFactory.getLogger(MediaServerServiceImpl.class);
 
@@ -102,9 +101,8 @@
      * 鍒濆鍖�
      */
     @Override
-    public void run(String... args) throws Exception {
+    public void updateVmServer(List<MediaServerItem>  mediaServerItemList) {
         logger.info("[缂撳瓨鍒濆鍖朷 Media Server ");
-        List<MediaServerItem> mediaServerItemList = mediaServerMapper.queryAll();
         for (MediaServerItem mediaServerItem : mediaServerItemList) {
             if (StringUtils.isEmpty(mediaServerItem.getId())) {
                 continue;
@@ -162,20 +160,21 @@
     }
 
     @Override
-    public void closeRTPServer(Device device, String channelId, String stream) {
-        String mediaServerId = streamSession.getMediaServerId(device.getDeviceId(), channelId, stream);
-        String ssrc = streamSession.getSSRC(device.getDeviceId(), channelId, stream);
+    public void closeRTPServer(String deviceId, String channelId, String stream) {
+        String mediaServerId = streamSession.getMediaServerId(deviceId, channelId, stream);
+        String ssrc = streamSession.getSSRC(deviceId, channelId, stream);
         MediaServerItem mediaServerItem = this.getOne(mediaServerId);
         if (mediaServerItem != null) {
-            String streamId = String.format("%s_%s", device.getDeviceId(), channelId);
+            String streamId = String.format("%s_%s", deviceId, channelId);
             zlmrtpServerFactory.closeRTPServer(mediaServerItem, streamId);
-            releaseSsrc(mediaServerItem, ssrc);
+            releaseSsrc(mediaServerItem.getId(), ssrc);
         }
-        streamSession.remove(device.getDeviceId(), channelId, stream);
+        streamSession.remove(deviceId, channelId, stream);
     }
 
     @Override
-    public void releaseSsrc(MediaServerItem mediaServerItem, String ssrc) {
+    public void releaseSsrc(String mediaServerItemId, String ssrc) {
+        MediaServerItem mediaServerItem = getOne(mediaServerItemId);
         if (mediaServerItem == null || ssrc == null) {
             return;
         }
@@ -225,7 +224,8 @@
             String key = (String) mediaServerKey;
             MediaServerItem mediaServerItem = (MediaServerItem) redisUtil.get(key);
             // 妫�鏌ョ姸鎬�
-            if (redisUtil.zScore(onlineKey, mediaServerItem.getId()) != null) {
+            Double aDouble = redisUtil.zScore(onlineKey, mediaServerItem.getId());
+            if (aDouble != null) {
                 mediaServerItem.setStatus(true);
             }
             result.add(mediaServerItem);
@@ -512,7 +512,15 @@
         param.put("hook.on_stream_not_found",String.format("%s/on_stream_not_found", hookPrex));
         param.put("hook.on_server_keepalive",String.format("%s/on_server_keepalive", hookPrex));
         param.put("hook.timeoutSec","20");
-        param.put("general.streamNoneReaderDelayMS","-1".equals(mediaServerItem.getStreamNoneReaderDelayMS())?"3600000":mediaServerItem.getStreamNoneReaderDelayMS() );
+        param.put("general.streamNoneReaderDelayMS",mediaServerItem.getStreamNoneReaderDelayMS()==-1?"3600000":mediaServerItem.getStreamNoneReaderDelayMS() );
+        // 鎺ㄦ祦鏂紑鍚庡彲浠ュ湪瓒呮椂鏃堕棿鍐呴噸鏂拌繛鎺ヤ笂缁х画鎺ㄦ祦锛岃繖鏍锋挱鏀惧櫒浼氭帴鐫�鎾斁銆�
+        // 缃�0鍏抽棴姝ょ壒鎬�(鎺ㄦ祦鏂紑浼氬鑷寸珛鍗虫柇寮�鎾斁鍣�)
+        // 姝ゅ弬鏁颁笉搴斿ぇ浜庢挱鏀惧櫒瓒呮椂鏃堕棿
+        // 浼樺寲姝ゆ秷鎭互鏇村揩鐨勬敹鍒版祦娉ㄩ攢浜嬩欢
+        param.put("general.continue_push_ms", "3000" );
+        // 鏈�澶氱瓑寰呮湭鍒濆鍖栫殑Track鏃堕棿锛屽崟浣嶆绉掞紝瓒呮椂涔嬪悗浼氬拷鐣ユ湭鍒濆鍖栫殑Track, 璁剧疆姝ら�夐」浼樺寲閭d簺闊抽閿欒鐨勪笉瑙勮寖娴侊紝
+        // 绛墇lm鏀寔缁欐瘡涓猺tpServer璁剧疆鍏抽棴闊抽鐨勬椂鍊欏彲浠ヤ笉璁剧疆姝ら�夐」
+        param.put("general.wait_track_ready_ms", "3000" );
 
         JSONObject responseJSON = zlmresTfulUtils.setServerConfig(mediaServerItem, param);
 
@@ -610,11 +618,18 @@
         String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetup.getServerId() + "_" + id;
         redisUtil.del(key);
     }
+    @Override
+    public void deleteDb(String id){
+        //鍚屾鍒犻櫎鏁版嵁搴撲腑鐨勬暟鎹�
+        mediaServerMapper.delOne(id);
+    }
 
     @Override
     public void updateMediaServerKeepalive(String mediaServerId, JSONObject data) {
         MediaServerItem mediaServerItem = getOne(mediaServerId);
         if (mediaServerItem == null) {
+            // zlm杩炴帴閲嶈瘯
+
             logger.warn("[鏇存柊ZLM 淇濇椿淇℃伅]澶辫触锛屾湭鎵惧埌娴佸獟浣撲俊鎭�");
             return;
         }

--
Gitblit v1.8.0