From 5628d007fc9b58fd22981d626e6f3557d8cdccb3 Mon Sep 17 00:00:00 2001
From: liusuyi <13324259@qq.com>
Date: 星期三, 14 六月 2023 21:20:08 +0800
Subject: [PATCH] 优化线程间录像抢占问题
---
ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java | 26 ++++++++++++++++----------
1 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
index 1d5a6cd..cfbcf96 100644
--- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
@@ -35,6 +35,8 @@
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
+
+import static com.ruoyi.device.hiksdk.common.GlobalVariable.threadMap;
import static com.ruoyi.device.hiksdk.util.hikSdkUtil.HCNetSDK.*;
/**
@@ -210,6 +212,7 @@
log.debug("鍔犺浇lib瀹屾垚锛�");
List<ArdCameras> ardCameras = ardCamerasMapper.selectArdCamerasListNoDataScope(new ArdCameras());
for (ArdCameras camera : ardCameras) {
+ Thread.sleep(100);
login(camera);
}
} catch (Exception ex) {
@@ -1335,16 +1338,20 @@
previewinfo.byNPQMode = 0;//NPQ妯″紡锛�0-鐩磋繛妯″紡锛�1-杩囨祦濯掍綋妯″紡
previewinfo.write();
if (enable) {
- if (!GlobalVariable.previewMap.containsKey(cameraId)) {
- int lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(userId, previewinfo, null, null);
- if (lRealHandle == -1) {
- log.error("鍙栨祦澶辫触" + hCNetSDK.NET_DVR_GetLastError());
- return;
- }
- log.info("鍙栨祦鎴愬姛");
- GlobalVariable.previewMap.put(cameraId, lRealHandle);
+ if (GlobalVariable.previewMap.containsKey(cameraId)) {
+ Integer lRealHandle = GlobalVariable.previewMap.get(cameraId);
+ hCNetSDK.NET_DVR_StopRealPlay(lRealHandle);
+ GlobalVariable.previewMap.remove(cameraId);
+ log.info("褰曞儚鍋滄");
}
-
+ int lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(userId, previewinfo, null, null);
+ if (lRealHandle == -1) {
+ log.error("鍙栨祦澶辫触" + hCNetSDK.NET_DVR_GetLastError());
+ return;
+ }
+ log.info("鍙栨祦鎴愬姛");
+ GlobalVariable.threadMap.put(cameraId,Thread.currentThread().getName());
+ GlobalVariable.previewMap.put(cameraId, lRealHandle);
if (!hCNetSDK.NET_DVR_SaveRealData_V30(GlobalVariable.previewMap.get(cameraId), 2, path)) {
log.error("淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负: " + hCNetSDK.NET_DVR_GetLastError());
return;
@@ -1357,7 +1364,6 @@
GlobalVariable.previewMap.remove(cameraId);
}
log.info("褰曞儚鍋滄");
-
//瀛樺叆minio
String BucketName = cmd.getRecordBucketName();
String ObjectName = cmd.getRecordObjectName();
--
Gitblit v1.9.3