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