From ad36354ef46a31f24b2583263f575d6736c0ad28 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 05 十二月 2023 11:29:05 +0800
Subject: [PATCH] 优化国标录像服务端,使用zlm新接口实现功能

---
 src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/record/GBRecordController.java |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/record/GBRecordController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/record/GBRecordController.java
index 910e436..bf8f78b 100755
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/record/GBRecordController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/record/GBRecordController.java
@@ -1,5 +1,7 @@
 package com.genersoft.iot.vmp.vmanager.gb28181.record;
 
+import com.genersoft.iot.vmp.common.InviteInfo;
+import com.genersoft.iot.vmp.common.InviteSessionType;
 import com.genersoft.iot.vmp.common.StreamInfo;
 import com.genersoft.iot.vmp.conf.UserSetting;
 import com.genersoft.iot.vmp.conf.exception.ControllerException;
@@ -10,7 +12,9 @@
 import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
 import com.genersoft.iot.vmp.service.IDeviceService;
+import com.genersoft.iot.vmp.service.IInviteStreamService;
 import com.genersoft.iot.vmp.service.IPlayService;
+import com.genersoft.iot.vmp.service.bean.DownloadFileInfo;
 import com.genersoft.iot.vmp.service.bean.InviteErrorCode;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
 import com.genersoft.iot.vmp.utils.DateUtil;
@@ -23,6 +27,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -54,6 +59,9 @@
 
 	@Autowired
 	private IPlayService playService;
+
+	@Autowired
+	private IInviteStreamService inviteStreamService;
 
 	@Autowired
 	private IDeviceService deviceService;
@@ -204,4 +212,32 @@
 		}
 		return new StreamContent(downLoadInfo);
 	}
+
+	@Operation(summary = "鑾峰彇鍘嗗彶濯掍綋涓嬭浇鏂囦欢鍦板潃")
+	@Parameter(name = "deviceId", description = "璁惧鍥芥爣缂栧彿", required = true)
+	@Parameter(name = "channelId", description = "閫氶亾鍥芥爣缂栧彿", required = true)
+	@Parameter(name = "stream", description = "娴両D", required = true)
+	@GetMapping("/download/file/path/{deviceId}/{channelId}/{stream}")
+	public DeferredResult<WVPResult<DownloadFileInfo>> getDownloadFilePath(@PathVariable String deviceId, @PathVariable String channelId, @PathVariable String stream) {
+
+		DeferredResult<WVPResult<DownloadFileInfo>> result = new DeferredResult<>();
+
+		result.onTimeout(()->{
+			WVPResult<DownloadFileInfo> wvpResult = new WVPResult<>();
+			wvpResult.setCode(ErrorCode.ERROR100.getCode());
+			wvpResult.setMsg("timeout");
+			result.setResult(wvpResult);
+		});
+
+		playService.getFilePath(deviceId, channelId, stream, (code, msg, data)->{
+			WVPResult<DownloadFileInfo> wvpResult = new WVPResult<>();
+			wvpResult.setCode(code);
+			wvpResult.setMsg(msg);
+			wvpResult.setData(data);
+			result.setResult(wvpResult);
+		});
+
+
+		return result;
+	}
 }

--
Gitblit v1.8.0