From e48ef997c03b49c8090970f5fbb29ce80b0ac6df Mon Sep 17 00:00:00 2001 From: 64850858 <648540858@qq.com> Date: 星期三, 14 七月 2021 15:57:39 +0800 Subject: [PATCH] 更换播放器, 修正和优化sql脚本, --- src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java | 39 ++++++++++++++++++++++++++++++--------- 1 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java b/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java index 65e1e5f..9e402e1 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java @@ -16,6 +16,7 @@ private ConcurrentHashMap<String, ClientTransaction> sessionMap = new ConcurrentHashMap<>(); private ConcurrentHashMap<String, String> ssrcMap = new ConcurrentHashMap<>(); + private ConcurrentHashMap<String, String> streamIdMap = new ConcurrentHashMap<>(); public String createPlaySsrc(){ return SsrcUtil.getPlaySsrc(); @@ -25,18 +26,38 @@ return SsrcUtil.getPlayBackSsrc(); } - public void put(String streamId,String ssrc,ClientTransaction transaction){ - sessionMap.put(streamId, transaction); - ssrcMap.put(streamId, ssrc); + public void put(String deviceId, String channelId ,String ssrc, String streamId, ClientTransaction transaction){ + sessionMap.put(deviceId + "_" + channelId, transaction); + ssrcMap.put(deviceId + "_" + channelId, ssrc); + streamIdMap.put(deviceId + "_" + channelId, streamId); } - public ClientTransaction get(String streamId){ - return sessionMap.get(streamId); + public ClientTransaction getTransaction(String deviceId, String channelId){ + return sessionMap.get(deviceId + "_" + channelId); + } + + public String getStreamId(String deviceId, String channelId){ + return streamIdMap.get(deviceId + "_" + channelId); } - public void remove(String streamId) { - sessionMap.remove(streamId); - SsrcUtil.releaseSsrc(ssrcMap.get(streamId)); - ssrcMap.remove(streamId); + public void remove(String deviceId, String channelId) { + sessionMap.remove(deviceId + "_" + channelId); + if (ssrcMap.get(deviceId + "_" + channelId) != null) { + SsrcUtil.releaseSsrc(ssrcMap.get(deviceId + "_" + channelId)); + } + ssrcMap.remove(deviceId + "_" + channelId); + streamIdMap.remove(deviceId + "_" + channelId); + } + + public ConcurrentHashMap<String, ClientTransaction> getSessionMap() { + return sessionMap; + } + + public ConcurrentHashMap<String, String> getSsrcMap() { + return ssrcMap; + } + + public ConcurrentHashMap<String, String> getStreamIdMap() { + return streamIdMap; } } -- Gitblit v1.8.0