|
|
@@ -29,12 +29,12 @@ public class DahuaDataAnalyzeService {
|
|
|
/**
|
|
|
* 多个登录设备的监听句柄
|
|
|
*/
|
|
|
- private Map<Long, NativeLong> analyzerHandles;
|
|
|
+ private Map<Long, AnalyzerData> analyzers;
|
|
|
private final Logger logger = LoggerFactory.getLogger(DahuaDataAnalyzeService.class);
|
|
|
|
|
|
public DahuaDataAnalyzeService(DahuaSdk sdk) {
|
|
|
this.sdk = sdk;
|
|
|
- this.analyzerHandles = new HashMap<>();
|
|
|
+ this.analyzers = new HashMap<>();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -45,11 +45,21 @@ public class DahuaDataAnalyzeService {
|
|
|
*/
|
|
|
public void startListen(DeviceInfo device, NativeLong loginHandle) {
|
|
|
long key = loginHandle.longValue();
|
|
|
- if (key != 0 && !analyzerHandles.containsKey(key)) {
|
|
|
+ if (key != 0 && !analyzers.containsKey(key)) {
|
|
|
+ fAnalyzerDataCallBack callback = new AnalyzerDataCallBack(device);
|
|
|
NativeLong lAnalyzerHandle = sdk.getInstance().CLIENT_RealLoadPictureEx(loginHandle, 0,
|
|
|
- DahuaEvents.EVENT_IVS_ALL, true, new AnalyzerDataCallBack(device),
|
|
|
- new NativeLong(), null);
|
|
|
- analyzerHandles.put(key, lAnalyzerHandle);
|
|
|
+ DahuaEvents.EVENT_IVS_ALL, true, callback, new NativeLong(), null);
|
|
|
+ analyzers.put(key, new AnalyzerData(lAnalyzerHandle, callback));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ class AnalyzerData {
|
|
|
+ public NativeLong handle;
|
|
|
+ public fAnalyzerDataCallBack callback;
|
|
|
+
|
|
|
+ public AnalyzerData(NativeLong handle, fAnalyzerDataCallBack callback) {
|
|
|
+ this.handle = handle;
|
|
|
+ this.callback = callback;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -104,8 +114,8 @@ public class DahuaDataAnalyzeService {
|
|
|
*/
|
|
|
public void stopListen(NativeLong loginHandle) {
|
|
|
long key = loginHandle.longValue();
|
|
|
- if (key != 0 && analyzerHandles.containsKey(key)) {
|
|
|
- boolean bRet = sdk.getInstance().CLIENT_StopLoadPic(analyzerHandles.get(key));
|
|
|
+ if (key != 0 && analyzers.containsKey(key)) {
|
|
|
+ boolean bRet = sdk.getInstance().CLIENT_StopLoadPic(analyzers.get(key).handle);
|
|
|
if (!bRet) {
|
|
|
throw new DahuaSdkException(sdk.getLastError());
|
|
|
}
|