From ca79100b6fae7b1963d1653227d67345893a0672 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期一, 07 三月 2022 01:23:23 +0800 Subject: [PATCH] 优化失败的录像点播的ssrc释放逻辑 --- src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java index 286f823..2df78b7 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java @@ -348,6 +348,7 @@ msg.setId(uuid); msg.setKey(key); PlayBackResult<RequestMessage> playBackResult = new PlayBackResult<>(); + Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override @@ -356,7 +357,16 @@ playBackResult.setCode(-1); playBackResult.setData(msg); callback.call(playBackResult); + SIPDialog dialog = streamSession.getDialogByStream(deviceId, channelId, ssrcInfo.getStream()); // 鐐规挱瓒呮椂鍥炲BYE 鍚屾椂閲婃斁ssrc浠ュ強姝ゆ鐐规挱鐨勮祫婧� + if (dialog != null) { + // 鐐规挱瓒呮椂鍥炲BYE 鍚屾椂閲婃斁ssrc浠ュ強姝ゆ鐐规挱鐨勮祫婧� + cmder.streamByeCmd(device.getDeviceId(), channelId, ssrcInfo.getStream()); + }else { + mediaServerService.releaseSsrc(newMediaServerItem.getId(), ssrcInfo.getSsrc()); + mediaServerService.closeRTPServer(deviceId, channelId, ssrcInfo.getStream()); + streamSession.remove(deviceId, channelId, ssrcInfo.getStream()); + } cmder.streamByeCmd(device.getDeviceId(), channelId, ssrcInfo.getStream()); // 鍥炲涔嬪墠鎵�鏈夌殑鐐规挱璇锋眰 callback.call(playBackResult); -- Gitblit v1.8.0