package com.genersoft.iot.vmp.gb28181.session; import java.util.concurrent.ConcurrentHashMap; import javax.sip.ClientTransaction; import org.springframework.stereotype.Component; /** * @Description:视频流session管理器,管理视频预览、预览回放的通信句柄 * @author: swwheihei * @date: 2020年5月13日 下午4:03:02 */ @Component public class VideoStreamSessionManager { private ConcurrentHashMap sessionMap = new ConcurrentHashMap<>(); private ConcurrentHashMap ssrcMap = new ConcurrentHashMap<>(); public String createPlaySsrc(){ return SsrcUtil.getPlaySsrc(); } public String createPlayBackSsrc(){ return SsrcUtil.getPlayBackSsrc(); } public void put(String streamId,String ssrc,ClientTransaction transaction){ sessionMap.put(streamId, transaction); ssrcMap.put(streamId, ssrc); } public ClientTransaction get(String streamId){ return sessionMap.get(streamId); } public void remove(String streamId) { sessionMap.remove(streamId); SsrcUtil.releaseSsrc(ssrcMap.get(streamId)); ssrcMap.remove(streamId); } }