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