From 9978d30aa1533c50bfaa48e44a1b0de4c157d10b Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期四, 11 四月 2024 09:36:48 +0800 Subject: [PATCH] Merge branch '2.7.0' --- src/main/java/com/genersoft/iot/vmp/gb28181/session/AudioBroadcastManager.java | 52 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 44 insertions(+), 8 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 d3ddf52..24eadba 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 @@ -2,6 +2,9 @@ import com.genersoft.iot.vmp.conf.SipConfig; import com.genersoft.iot.vmp.gb28181.bean.AudioBroadcastCatch; +import com.genersoft.iot.vmp.gb28181.utils.SipUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -17,21 +20,30 @@ @Component public class AudioBroadcastManager { + private final static Logger logger = LoggerFactory.getLogger(AudioBroadcastManager.class); + @Autowired private SipConfig config; public static Map<String, AudioBroadcastCatch> data = new ConcurrentHashMap<>(); - public void add(AudioBroadcastCatch audioBroadcastCatch) { - this.update(audioBroadcastCatch); - } public void update(AudioBroadcastCatch audioBroadcastCatch) { - data.put(audioBroadcastCatch.getDeviceId() + audioBroadcastCatch.getChannelId(), audioBroadcastCatch); + if (SipUtils.isFrontEnd(audioBroadcastCatch.getDeviceId())) { + audioBroadcastCatch.setChannelId(audioBroadcastCatch.getDeviceId()); + data.put(audioBroadcastCatch.getDeviceId(), audioBroadcastCatch); + }else { + data.put(audioBroadcastCatch.getDeviceId() + audioBroadcastCatch.getChannelId(), audioBroadcastCatch); + } } public void del(String deviceId, String channelId) { - data.remove(deviceId + channelId); + if (SipUtils.isFrontEnd(deviceId)) { + data.remove(deviceId); + }else { + data.remove(deviceId + channelId); + } + } public void delByDeviceId(String deviceId) { @@ -50,15 +62,22 @@ public boolean exit(String deviceId, String channelId) { for (String key : data.keySet()) { - if (key.equals(deviceId + channelId)) { - return true; + if (SipUtils.isFrontEnd(deviceId)) { + return key.equals(deviceId); + }else { + return key.equals(deviceId + channelId); } } return false; } public AudioBroadcastCatch get(String deviceId, String channelId) { - AudioBroadcastCatch audioBroadcastCatch = data.get(deviceId + channelId); + AudioBroadcastCatch audioBroadcastCatch; + if (SipUtils.isFrontEnd(deviceId)) { + audioBroadcastCatch = data.get(deviceId); + }else { + audioBroadcastCatch = data.get(deviceId + channelId); + } if (audioBroadcastCatch == null) { Stream<AudioBroadcastCatch> allAudioBroadcastCatchStreamForDevice = data.values().stream().filter( audioBroadcastCatchItem -> Objects.equals(audioBroadcastCatchItem.getDeviceId(), deviceId)); @@ -70,4 +89,21 @@ return audioBroadcastCatch; } + + public List<AudioBroadcastCatch> get(String deviceId) { + List<AudioBroadcastCatch> audioBroadcastCatchList= new ArrayList<>(); + if (SipUtils.isFrontEnd(deviceId)) { + if (data.get(deviceId) != null) { + audioBroadcastCatchList.add(data.get(deviceId)); + } + }else { + for (String key : data.keySet()) { + if (key.startsWith(deviceId)) { + audioBroadcastCatchList.add(data.get(key)); + } + } + } + + return audioBroadcastCatchList; + } } -- Gitblit v1.8.0