diff --git a/src/main/java/com/zilber/boot/dahua/controller/DahuaController.java b/src/main/java/com/zilber/boot/dahua/controller/DahuaController.java index fa803fb..73fb803 100644 --- a/src/main/java/com/zilber/boot/dahua/controller/DahuaController.java +++ b/src/main/java/com/zilber/boot/dahua/controller/DahuaController.java @@ -14,6 +14,8 @@ import com.zilber.boot.dahua.attendance.GetResultPageResponse; import com.zilber.boot.dahua.config.OauthConfigUtil; import com.zilber.boot.dahua.device.DevicePageRequest; import com.zilber.boot.dahua.device.DevicePageResponse; +import com.zilber.boot.dahua.video.PlayBackByTimeResponse; +import com.zilber.boot.dahua.video.PlaybackByTimeRequest; import com.zilber.boot.dahua.video.RtspUrlRequest; import com.zilber.boot.dahua.video.RtspUrlResponse; import io.swagger.annotations.Api; @@ -151,5 +153,28 @@ public class DahuaController { return response; } + /** + * rtsp以时间形式回放录像 + * @param playbackByTimeRequest + * @return + * 参考API :https://open-icc.dahuatech.com/iccdoc/enterprisebase/5.0.15/wiki/admin/replay.html#rtsp%E4%BB%A5%E6%97%B6%E9%97%B4%E5%BD%A2%E5%BC%8F%E5%9B%9E%E6%94%BE%E5%BD%95%E5%83%8F + */ + @ApiOperation(value = " rtsp以时间形式回放录像",notes = " rtsp以时间形式回放录像") + @PostMapping("/video/getPlaybackByTimeRtspUrl") + public PlayBackByTimeResponse getPlaybackByTimeRtspUrl(@RequestBody PlaybackByTimeRequest playbackByTimeRequest){ + PlayBackByTimeResponse response=null; + OauthConfigUserPwdInfo config = OauthConfigUtil.getOauthConfig(); + try { + log.info("videoReplayDemo,getPlaybackByTimeRtspUrl,request:{}", JSONUtil.toJsonStr(playbackByTimeRequest)); + response = HttpUtils.executeJson("/evo-apigw/admin/API/SS/Playback/StartPlaybackByTime", playbackByTimeRequest,null, Method.POST , config, PlayBackByTimeResponse.class); + log.info("videoReplayDemo,getPlaybackByTimeRtspUrl,response:{}", JSONUtil.toJsonStr(response)); + } catch (ClientException e) { + log.error(e.getErrMsg(), e); + } + if(!response.getCode().equals("1000")) { + log.info("获取以时间形式回放录像rtsp流地址失败:{}",response.getErrMsg()); + } + return response; + } } diff --git a/src/main/java/com/zilber/boot/dahua/video/PlayBackByTimeResponse.java b/src/main/java/com/zilber/boot/dahua/video/PlayBackByTimeResponse.java new file mode 100644 index 0000000..e115808 --- /dev/null +++ b/src/main/java/com/zilber/boot/dahua/video/PlayBackByTimeResponse.java @@ -0,0 +1,26 @@ +package com.zilber.boot.dahua.video; + +import com.dahuatech.icc.oauth.http.IccResponse; +import lombok.Data; + +/** + * program:java-sdk-demo + * + * @Author: 355079 + * @Date:2024-04-07 13:48 + * @Description: rtsp以时间形式回放录像返回结果 + */ +@Data +public class PlayBackByTimeResponse extends IccResponse { + + private Data data; + @lombok.Data + public static class Data{ + private String url; + private String session; + private String protocol; + private String token; + private String fromDevice; + } + +} diff --git a/src/main/java/com/zilber/boot/dahua/video/PlaybackByTimeRequest.java b/src/main/java/com/zilber/boot/dahua/video/PlaybackByTimeRequest.java new file mode 100644 index 0000000..4cc102e --- /dev/null +++ b/src/main/java/com/zilber/boot/dahua/video/PlaybackByTimeRequest.java @@ -0,0 +1,25 @@ +package com.zilber.boot.dahua.video; + +import lombok.Data; + +/** + * program:java-sdk-demo + * + * @Author: 355079 + * @Date:2024-04-07 13:48 + * @Description: rtsp以时间形式回放录像请求参数 + */ +@Data +public class PlaybackByTimeRequest { + private Data data; + + @lombok.Data + public static class Data{ + private String channelId; + private String recordSource; + private String startTime; + private String endTime; + private String streamType; + private String recordType; + } +}