From a4f48a15223400a580a61df92a17d6e2309406cf Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 30 九月 2022 17:54:58 +0800
Subject: [PATCH] 修复回看控制失效 #619

---
 src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java |   26 ++++++++++++--------------
 1 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java
index 20860bf..696fae0 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java
@@ -2,9 +2,11 @@
 
 import com.genersoft.iot.vmp.common.StreamInfo;
 import com.genersoft.iot.vmp.conf.exception.ControllerException;
+import com.genersoft.iot.vmp.conf.exception.ServiceException;
 import com.genersoft.iot.vmp.conf.exception.SsrcTransactionNotFoundException;
 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.ZLMRTPServerFactory;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.service.IPlayService;
 import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
@@ -44,6 +46,9 @@
 
 	@Autowired
 	private SIPCommander cmder;
+
+	@Autowired
+	private ZLMRTPServerFactory zlmrtpServerFactory;
 
 	@Autowired
 	private IVideoManagerStorage storager;
@@ -113,14 +118,11 @@
 	@GetMapping("/pause/{streamId}")
 	public void playPause(@PathVariable String streamId) {
 		logger.info("playPause: "+streamId);
-		StreamInfo streamInfo = redisCatchStorage.queryPlayback(null, null, streamId, null);
-		if (null == streamInfo) {
-			logger.warn("streamId涓嶅瓨鍦�!");
-			throw new ControllerException(ErrorCode.ERROR400.getCode(), "streamId涓嶅瓨鍦�");
-		}
-		Device device = storager.queryVideoDevice(streamInfo.getDeviceID());
+
 		try {
-			cmder.playPauseCmd(device, streamInfo);
+			playService.pauseRtp(streamId);
+		} catch (ServiceException e) {
+			throw new ControllerException(ErrorCode.ERROR400.getCode(), e.getMessage());
 		} catch (InvalidArgumentException | ParseException | SipException e) {
 			throw new ControllerException(ErrorCode.ERROR100.getCode(), e.getMessage());
 		}
@@ -132,14 +134,10 @@
 	@GetMapping("/resume/{streamId}")
 	public void playResume(@PathVariable String streamId) {
 		logger.info("playResume: "+streamId);
-		StreamInfo streamInfo = redisCatchStorage.queryPlayback(null, null, streamId, null);
-		if (null == streamInfo) {
-			logger.warn("streamId涓嶅瓨鍦�!");
-			throw new ControllerException(ErrorCode.ERROR400.getCode(), "streamId涓嶅瓨鍦�");
-		}
-		Device device = storager.queryVideoDevice(streamInfo.getDeviceID());
 		try {
-			cmder.playResumeCmd(device, streamInfo);
+			playService.resumeRtp(streamId);
+		} catch (ServiceException e) {
+			throw new ControllerException(ErrorCode.ERROR400.getCode(), e.getMessage());
 		} catch (InvalidArgumentException | ParseException | SipException e) {
 			throw new ControllerException(ErrorCode.ERROR100.getCode(), e.getMessage());
 		}

--
Gitblit v1.8.0