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