From 2d82d1b8eec67df9195b7ebc4b4318a7cdcc1f7f Mon Sep 17 00:00:00 2001
From: panlinlin <648540858@qq.com>
Date: 星期三, 03 三月 2021 10:30:06 +0800
Subject: [PATCH] 修复ssrc释放失败的问题

---
 src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java |   20 ++++++++------------
 1 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java
index 59667d0..08e5cc4 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java
@@ -1,19 +1,16 @@
 package com.genersoft.iot.vmp.vmanager.play;
 
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
 import com.genersoft.iot.vmp.common.StreamInfo;
 import com.genersoft.iot.vmp.conf.MediaServerConfig;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
 import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils;
-import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.vmanager.service.IPlayService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.CrossOrigin;
@@ -30,7 +27,6 @@
 import org.springframework.web.context.request.async.DeferredResult;
 
 import javax.sip.message.Response;
-import java.text.DecimalFormat;
 import java.util.UUID;
 
 @CrossOrigin
@@ -94,6 +90,7 @@
 				resultHolder.invokeResult(msg);
 			} else {
 				redisCatchStorage.stopPlay(streamInfo);
+				storager.stopPlay(streamInfo.getDeviceID(), streamInfo.getChannelId());
 				cmder.playStreamCmd(device, channelId, (JSONObject response) -> {
 					logger.info("鏀跺埌璁㈤槄娑堟伅锛� " + response.toJSONString());
 					playService.onPublishHandlerForPlay(response, deviceId, channelId, uuid.toString());
@@ -138,17 +135,16 @@
 				msg.setId(DeferredResultHolder.CALLBACK_CMD_PlAY + uuid);
 				msg.setData("streamId not found");
 				resultHolder.invokeResult(msg);
+			}else {
 				redisCatchStorage.stopPlay(streamInfo);
+				storager.stopPlay(streamInfo.getDeviceID(), streamInfo.getChannelId());
+				RequestMessage msg = new RequestMessage();
+				msg.setId(DeferredResultHolder.CALLBACK_CMD_STOP + uuid);
+				//Response response = event.getResponse();
+				msg.setData(String.format("success"));
+				resultHolder.invokeResult(msg);
 			}
-
-			RequestMessage msg = new RequestMessage();
-			msg.setId(DeferredResultHolder.CALLBACK_CMD_STOP + uuid);
-			Response response = event.getResponse();
-			msg.setData(String.format("success"));
-			resultHolder.invokeResult(msg);
 		});
-
-
 
 		if (streamId != null) {
 			JSONObject json = new JSONObject();

--
Gitblit v1.8.0