From 0447b83c3a5e48741adcd85ce9552ff202831784 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 29 三月 2024 23:41:00 +0800
Subject: [PATCH] 临时提交

---
 src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java    |    6 +-
 src/main/java/com/genersoft/iot/vmp/media/event/MediaArrivalEvent.java         |   11 +++++
 src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java          |   27 +++++++++++++
 src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java   |    5 +-
 src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java           |    3 +
 src/main/java/com/genersoft/iot/vmp/gb28181/session/AudioBroadcastManager.java |   42 ---------------------
 src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java         |    1 
 7 files changed, 46 insertions(+), 49 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/session/AudioBroadcastManager.java b/src/main/java/com/genersoft/iot/vmp/gb28181/session/AudioBroadcastManager.java
index bc5f022..f5385d4 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/session/AudioBroadcastManager.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/session/AudioBroadcastManager.java
@@ -38,50 +38,8 @@
     @Autowired
     private SipConfig config;
 
-    @Autowired
-    private SIPCommander cmder;
-
-    @Autowired
-    private IRedisCatchStorage redisCatchStorage;
-
-    @Autowired
-    private IDeviceService deviceService;
-
     public static Map<String, AudioBroadcastCatch> data = new ConcurrentHashMap<>();
 
-    /**
-     * 娴佺寮�鐨勫鐞�
-     */
-    @Async("taskExecutor")
-    @EventListener
-    public void onApplicationEvent(MediaDepartureEvent event) {
-        List<SendRtpItem> sendRtpItems = redisCatchStorage.querySendRTPServerByStream(event.getStream());
-        if (!sendRtpItems.isEmpty()) {
-            for (SendRtpItem sendRtpItem : sendRtpItems) {
-                if (sendRtpItem != null && sendRtpItem.getApp().equals(event.getApp())) {
-                    String platformId = sendRtpItem.getPlatformId();
-                    Device device = deviceService.getDevice(platformId);
-                    try {
-                        if (device != null) {
-                            cmder.streamByeCmd(device, sendRtpItem.getChannelId(), event.getStream(), sendRtpItem.getCallId());
-                            if (sendRtpItem.getPlayType().equals(InviteStreamType.BROADCAST)
-                                    || sendRtpItem.getPlayType().equals(InviteStreamType.TALK)) {
-                                AudioBroadcastCatch audioBroadcastCatch = get(sendRtpItem.getDeviceId(), sendRtpItem.getChannelId());
-                                if (audioBroadcastCatch != null) {
-                                    // 鏉ヨ嚜涓婄骇骞冲彴鐨勫仠姝㈠璁�
-                                    logger.info("[鍋滄瀵硅] 鏉ヨ嚜涓婄骇锛屽钩鍙帮細{}, 閫氶亾锛歿}", sendRtpItem.getDeviceId(), sendRtpItem.getChannelId());
-                                    del(sendRtpItem.getDeviceId(), sendRtpItem.getChannelId());
-                                }
-                            }
-                        }
-                    } catch (SipException | InvalidArgumentException | ParseException |
-                             SsrcTransactionNotFoundException e) {
-                        logger.error("[鍛戒护鍙戦�佸け璐 鍙戦�丅YE: {}", e.getMessage());
-                    }
-                }
-            }
-        }
-    }
 
     public void update(AudioBroadcastCatch audioBroadcastCatch) {
         if (SipUtils.isFrontEnd(audioBroadcastCatch.getDeviceId())) {
diff --git a/src/main/java/com/genersoft/iot/vmp/media/event/MediaArrivalEvent.java b/src/main/java/com/genersoft/iot/vmp/media/event/MediaArrivalEvent.java
index 1b79b0c..b70fcf7 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/event/MediaArrivalEvent.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/event/MediaArrivalEvent.java
@@ -20,6 +20,7 @@
         mediaArrivalEvent.setStream(hookParam.getStream());
         mediaArrivalEvent.setMediaServer(mediaServer);
         mediaArrivalEvent.setSchema(hookParam.getSchema());
+        mediaArrivalEvent.setCallId(hookParam.getCallId());
         return mediaArrivalEvent;
     }
 
@@ -32,6 +33,8 @@
     private MediaServer mediaServer;
 
     private String schema;
+
+    private String callId;
 
     public MediaInfo getMediaInfo() {
         return mediaInfo;
@@ -72,4 +75,12 @@
     public void setSchema(String schema) {
         this.schema = schema;
     }
+
+    public String getCallId() {
+        return callId;
+    }
+
+    public void setCallId(String callId) {
+        this.callId = callId;
+    }
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
index 9316aa6..3fcb9d0 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
@@ -208,7 +208,6 @@
         ResultForOnPublish result = new ResultForOnPublish();
         result.setEnable_audio(true);
 
-
         // 鏄惁褰曞儚
         if ("rtp".equals(app)) {
             result.setEnable_mp4(userSetting.getRecordSip());
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
index e6b082d..1fad2be 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
@@ -175,6 +175,33 @@
     @Async("taskExecutor")
     @EventListener
     public void onApplicationEvent(MediaDepartureEvent event) {
+        List<SendRtpItem> sendRtpItems = redisCatchStorage.querySendRTPServerByStream(event.getStream());
+        if (!sendRtpItems.isEmpty()) {
+            for (SendRtpItem sendRtpItem : sendRtpItems) {
+                if (sendRtpItem != null && sendRtpItem.getApp().equals(event.getApp())) {
+                    String platformId = sendRtpItem.getPlatformId();
+                    Device device = deviceService.getDevice(platformId);
+                    try {
+                        if (device != null) {
+                            cmder.streamByeCmd(device, sendRtpItem.getChannelId(), event.getStream(), sendRtpItem.getCallId());
+                            if (sendRtpItem.getPlayType().equals(InviteStreamType.BROADCAST)
+                                    || sendRtpItem.getPlayType().equals(InviteStreamType.TALK)) {
+                                AudioBroadcastCatch audioBroadcastCatch = audioBroadcastManager.get(sendRtpItem.getDeviceId(), sendRtpItem.getChannelId());
+                                if (audioBroadcastCatch != null) {
+                                    // 鏉ヨ嚜涓婄骇骞冲彴鐨勫仠姝㈠璁�
+                                    logger.info("[鍋滄瀵硅] 鏉ヨ嚜涓婄骇锛屽钩鍙帮細{}, 閫氶亾锛歿}", sendRtpItem.getDeviceId(), sendRtpItem.getChannelId());
+                                    audioBroadcastManager.del(sendRtpItem.getDeviceId(), sendRtpItem.getChannelId());
+                                }
+                            }
+                        }
+                    } catch (SipException | InvalidArgumentException | ParseException |
+                             SsrcTransactionNotFoundException e) {
+                        logger.error("[鍛戒护鍙戦�佸け璐 鍙戦�丅YE: {}", e.getMessage());
+                    }
+                }
+            }
+        }
+
         if ("broadcast".equals(event.getApp()) || "talk".equals(event.getApp())) {
             if (event.getStream().indexOf("_") > 0) {
                 String[] streamArray = event.getStream().split("_");
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
index dd0e885..4bdcc2f 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
@@ -176,14 +176,14 @@
                 redisCatchStorage.sendStreamChangeMsg(type, jsonObject);
             }
         }
-        GbStream gbStream = storager.getGbStream(event.getApp(), event.getStream());
+        GbStream gbStream = gbStreamMapper.selectOne(event.getApp(), event.getStream());
         if (gbStream != null) {
             if (userSetting.isUsePushingAsStatus()) {
-                storager.mediaOffline(event.getApp(), event.getStream());
+                streamPushMapper.updatePushStatus(event.getApp(), event.getStream(), false);
                 eventPublisher.catalogEventPublishForStream(null, gbStream, CatalogEvent.OFF);
             }
         }else {
-            storager.removeMedia(event.getApp(), event.getStream());
+            streamPushMapper.del(event.getApp(), event.getStream());
         }
     }
 
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java b/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
index 2a48a49..7edf7e8 100755
--- a/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
@@ -6,6 +6,7 @@
 import com.genersoft.iot.vmp.gb28181.bean.Device;
 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatformCatch;
 import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem;
+import com.genersoft.iot.vmp.media.event.MediaArrivalEvent;
 import com.genersoft.iot.vmp.media.zlm.dto.MediaServer;
 import com.genersoft.iot.vmp.media.zlm.dto.StreamAuthorityInfo;
 import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
@@ -209,7 +210,7 @@
 
     void sendPlatformStopPlayMsg(MessageForPushChannel messageForPushChannel);
 
-    void addPushListItem(String app, String stream, OnStreamChangedHookParam param);
+    void addPushListItem(String app, String stream, MediaArrivalEvent param);
 
     void removePushListItem(String app, String stream, String mediaServerId);
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
index 4fc16fc..2523312 100755
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
@@ -9,6 +9,7 @@
 import com.genersoft.iot.vmp.gb28181.bean.Device;
 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatformCatch;
 import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem;
+import com.genersoft.iot.vmp.media.event.MediaArrivalEvent;
 import com.genersoft.iot.vmp.media.zlm.dto.MediaServer;
 import com.genersoft.iot.vmp.media.zlm.dto.StreamAuthorityInfo;
 import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
@@ -651,9 +652,9 @@
     }
 
     @Override
-    public void addPushListItem(String app, String stream, OnStreamChangedHookParam param) {
+    public void addPushListItem(String app, String stream, MediaArrivalEvent event) {
         String key = VideoManagerConstants.PUSH_STREAM_LIST + app + "_" + stream;
-        redisTemplate.opsForValue().set(key, param);
+        redisTemplate.opsForValue().set(key, event);
     }
 
     @Override

--
Gitblit v1.8.0