大华摄像头sdk 常用java功能实现
时间: 2023-09-14 13:03:01 浏览: 77
大华摄像头SDK提供了Java版的API接口,可以通过Java编程语言来实现常用的功能。以下是一些常用的Java功能实现:
1. 初始化SDK
```java
HCNetSDK hCNetSDK = HCNetSDK.INSTANCE;
boolean initSuc = hCNetSDK.NET_DVR_Init();
if (initSuc != true) {
System.out.println("SDK初始化失败");
return;
}
```
2. 登录设备
```java
HCNetSDK.NET_DVR_DEVICEINFO_V30 deviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V30();
int userID = hCNetSDK.NET_DVR_Login_V30(deviceIP, devicePort, username, password, deviceInfo);
if (userID < 0) {
System.out.println("登录设备失败");
return;
}
```
3. 实时预览
```java
HCNetSDK.NET_DVR_PREVIEWINFO previewInfo = new HCNetSDK.NET_DVR_PREVIEWINFO();
previewInfo.lChannel = channelNo;
previewInfo.dwStreamType = 0; // 0-主码流,1-子码流
previewInfo.dwLinkMode = 0x0000; // 0- TCP方式,0x0001 - UDP方式,
previewInfo.hPlayWnd = new NativeLong(0); // 默认为0
previewInfo.bBlocked = true; // 阻塞取流开关:0-非阻塞,1-阻塞
previewInfo.byProtoType = 0; // 应用层取流协议:0-私有协议,1-RTSP协议,2-用户自定义协议
previewInfo.byPreviewMode = 0; // 预览模式:0-正常预览,1-延迟预览
previewInfo.byStreamID[0] = 0;
NativeLong playHandle = hCNetSDK.NET_DVR_RealPlay_V40(userID, previewInfo, null);
if (playHandle.longValue() == -1) {
System.out.println("实时预览失败");
return;
}
```
4. 抓图
```java
HCNetSDK.NET_DVR_JPEGPARA jpegPara = new HCNetSDK.NET_DVR_JPEGPARA();
jpegPara.wPicSize = 0xff; // 图片尺寸:0xff-原始尺寸
jpegPara.wPicQuality = 0; // 图片质量:0-最好,1-较好,2-一般
String filePath = "D:\\capture.jpg"; // 保存路径
boolean captureSuc = hCNetSDK.NET_DVR_CaptureJPEGPicture(playHandle, channelNo, jpegPara, filePath);
if (captureSuc != true) {
System.out.println("抓图失败");
return;
}
```
5. 录像
```java
HCNetSDK.NET_DVR_TIME startTime = new HCNetSDK.NET_DVR_TIME();
HCNetSDK.NET_DVR_TIME endTime = new HCNetSDK.NET_DVR_TIME();
startTime.dwYear = 2021;
startTime.dwMonth = 7;
startTime.dwDay = 1;
startTime.dwHour = 0;
startTime.dwMinute = 0;
startTime.dwSecond = 0;
endTime.dwYear = 2021;
endTime.dwMonth = 7;
endTime.dwDay = 1;
endTime.dwHour = 1;
endTime.dwMinute = 0;
endTime.dwSecond = 0;
String filePath = "D:\\record.mp4"; // 保存路径
boolean recordSuc = hCNetSDK.NET_DVR_SaveRealData_V40(playHandle, filePath, HCNetSDK.NET_DVR_TRANSPARENT, 0);
if (recordSuc != true) {
System.out.println("录像失败");
return;
}
```
以上是一些常用的Java功能实现,仅供参考。具体的实现方式还需要根据实际需求来确定。