|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * @Description:视频流session管理器,管理视频预览、预览回放的通信句柄 | 
|---|
|  |  |  | * @author: songww | 
|---|
|  |  |  | * @author: swwheihei | 
|---|
|  |  |  | * @date:   2020年5月13日 下午4:03:02 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Component | 
|---|
|  |  |  | public class VideoStreamSessionManager { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private ConcurrentHashMap<String, ClientTransaction> sessionMap = new ConcurrentHashMap<>(); | 
|---|
|  |  |  | private ConcurrentHashMap<String, String> ssrcMap = new ConcurrentHashMap<>(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public String createPlaySsrc(){ | 
|---|
|  |  |  | String ssrc = SsrcUtil.getPlaySsrc(); | 
|---|
|  |  |  | return ssrc; | 
|---|
|  |  |  | return SsrcUtil.getPlaySsrc(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public String createPlayBackSsrc(){ | 
|---|
|  |  |  | String ssrc = SsrcUtil.getPlayBackSsrc(); | 
|---|
|  |  |  | return ssrc; | 
|---|
|  |  |  | return SsrcUtil.getPlayBackSsrc(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void put(String ssrc,ClientTransaction transaction){ | 
|---|
|  |  |  | sessionMap.put(ssrc, transaction); | 
|---|
|  |  |  | public void put(String streamId,String ssrc,ClientTransaction transaction){ | 
|---|
|  |  |  | sessionMap.put(streamId, transaction); | 
|---|
|  |  |  | ssrcMap.put(streamId, ssrc); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public ClientTransaction get(String ssrc){ | 
|---|
|  |  |  | return sessionMap.get(ssrc); | 
|---|
|  |  |  | public ClientTransaction get(String streamId){ | 
|---|
|  |  |  | return sessionMap.get(streamId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void remove(String ssrc) { | 
|---|
|  |  |  | sessionMap.remove(ssrc); | 
|---|
|  |  |  | SsrcUtil.releaseSsrc(ssrc); | 
|---|
|  |  |  | public void remove(String streamId) { | 
|---|
|  |  |  | sessionMap.remove(streamId); | 
|---|
|  |  |  | SsrcUtil.releaseSsrc(ssrcMap.get(streamId)); | 
|---|
|  |  |  | ssrcMap.remove(streamId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|