Procházet zdrojové kódy

报警回放开发

gao.qiang před 10 měsíci
rodič
revize
785eadc873

+ 2 - 2
hazard-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java

@@ -539,7 +539,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         // 使用SimpleDateFormat格式化Date对象为字符串
         String start = sdf.format(startTm);
         String end = sdf.format(endTm);
-        String url = webUrl + "/api/gb28181/invite?id=" + cameraCode + "&channel=" + channel + "&startTime=" + start + "&endTime=" + end;
+        String url = webUrl + "/gb28181/api/invite?id=" + cameraCode + "&channel=" + channel + "&startTime=" + start + "&endTime=" + end;
         try {
             result = HttpClientUtil.get(url);
             if (result.equals("200")) {
@@ -554,7 +554,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
             log.info(e.getMessage());
             e.printStackTrace();
         }
-        return null;
+        return "当前相机暂无回放视频";
     }
 
     /**

+ 13 - 5
hazard-sdk/src/main/java/com/ozs/controller/upload/GeoHazardMonitorTokenController.java

@@ -50,6 +50,7 @@ import java.time.OffsetDateTime;
 import java.time.ZoneOffset;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -229,9 +230,11 @@ public class GeoHazardMonitorTokenController {
                 respMsgAlarmVo.setIsCancel(2);
                 respMsgAlarmVo.setCancelTime(null);
                 // 合成报警视频
-                String alarmUrl = alarmHistoryPlay(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel(),msgAlarm.getAlarmTime());
-                msgAlarm.setReleasedUrl(alarmUrl);
-                msgAlarmService.updateById(msgAlarm);
+                CompletableFuture.runAsync(() -> {
+                    String alarmUrl = alarmHistoryPlay(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel(), msgAlarm.getAlarmTime());
+                    msgAlarm.setReleasedUrl(alarmUrl);
+                    msgAlarmService.updateById(msgAlarm);
+                });
             } else {
                 BeanUtils.copyProperties(reqMsgAlarmVo, msgAlarmVice);
                 String[] imageUrl = reqMsgAlarmVo.getImageUrls();
@@ -352,8 +355,13 @@ public class GeoHazardMonitorTokenController {
         log.info("afterTenMinutes------------->" + afterTenMinutes);
         // 格式化时间
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        String result = null;
-        String url = webUrl + "/api/gb28181/invite?id=" + cameraCode + "&channel=" + channel + "&startTime=" + beforeTenMinutes.format(formatter) + "&endTime=" + afterTenMinutes.format(formatter);
+        try {
+            TimeUnit.SECONDS.sleep(65 * 5);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
+        String result;
+        String url = webUrl + "/gb28181/api/invite?id=" + cameraCode + "&channel=" + channel + "&startTime=" + beforeTenMinutes.format(formatter) + "&endTime=" + afterTenMinutes.format(formatter);
         try {
             result = HttpClientUtil.get(url);
             if ("200".equals(result)) {