From 07956b48df476002e3cfd9b01be9e9fb92590ca9 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期五, 01 七月 2022 18:26:35 +0800 Subject: [PATCH] 添加界面优化接口 --- src/main/java/com/genersoft/iot/vmp/gb28181/session/AudioBroadcastManager.java | 24 +++++++++++++++++++----- 1 files changed, 19 insertions(+), 5 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 dec96c0..d3ddf52 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 @@ -1,13 +1,14 @@ package com.genersoft.iot.vmp.gb28181.session; +import com.genersoft.iot.vmp.conf.SipConfig; import com.genersoft.iot.vmp.gb28181.bean.AudioBroadcastCatch; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * 璇煶骞挎挱娑堟伅绠$悊绫� @@ -15,6 +16,9 @@ */ @Component public class AudioBroadcastManager { + + @Autowired + private SipConfig config; public static Map<String, AudioBroadcastCatch> data = new ConcurrentHashMap<>(); @@ -54,6 +58,16 @@ } public AudioBroadcastCatch get(String deviceId, String channelId) { - return data.get(deviceId + channelId); + AudioBroadcastCatch audioBroadcastCatch = data.get(deviceId + channelId); + if (audioBroadcastCatch == null) { + Stream<AudioBroadcastCatch> allAudioBroadcastCatchStreamForDevice = data.values().stream().filter( + audioBroadcastCatchItem -> Objects.equals(audioBroadcastCatchItem.getDeviceId(), deviceId)); + List<AudioBroadcastCatch> audioBroadcastCatchList = allAudioBroadcastCatchStreamForDevice.collect(Collectors.toList()); + if (audioBroadcastCatchList.size() == 1 && Objects.equals(config.getId(), channelId)) { + audioBroadcastCatch = audioBroadcastCatchList.get(0); + } + } + + return audioBroadcastCatch; } } -- Gitblit v1.8.0