**1.**首先下载官网的sdk开发包,引入HCNetSDK.java,里面定义了很多调用的能力集。
**2.**通过报警回调函数中的黑名单报警这个接口去实现人脸抓拍的。
3.简单来说就是写个类去实现HCNetSDK.FMSGCallBack 然后根据条件函数 case HCNetSDK.COMM_SNAP_MATCH_ALARM。
4进行类的初始化操作、账号和密码的设定,IP地址的绑定。
**5.**下载好了之后创建maven项目.
按照SDK里面的文档要求把下图文件夹和文件引入(在SDK库文件夹里),7个dll文件和一个KCNetSDK文件夹(我这里创建了一个HCNetSDK的文件夹装下这些)
6. 接下来把他的接口类引入 如下在这里插入图片描述
打开接口类 看33行 这里有个引入dll文件的代码,我这里是用的文件引入工具类(这个类后面有给出),你们自己换成目录。resources\HCNetSDK\HCNetSDK的绝对路径!!!!其实这里引入的就是我们引入的7个dll文件中的HCNetSDK.dll这个文件,这里绝对路径引入的时候不要.dll后缀名。
文件也引入了 接下来就是我们自己创建java类去调用它的接口类了,创建两个类 一个是报警回调函数的实现类(用来实现调用海康人脸比对),一个是主类 里面包含 初始化海康接口类、调用第一个函数实现人脸评分抓拍等等。
附上核心代码!
package HikSnap;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.Date;
import java.text.SimpleDateFormat;
import com.sun.jna.NativeLong;
import com.sun.jna.Pointer;
/**
*@author fengwenyong
* 实时进行人脸抓拍保存远近图片
*/
class FMSGCallBack_V31 implements HCNetSDK.FMSGCallBack_V31
{
//实时人脸抓拍上传
public boolean invoke(NativeLong lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser)
{
AlarmDataHandle(lCommand, pAlarmer, pAlarmInfo, dwBufLen, pUser);
return true;
}
public void AlarmDataHandle(NativeLong lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen,