当前位置:   article > 正文

linux下调用海康sdk_linux调用海康威视sdk

linux调用海康威视sdk

linux下调用海康sdk

1 库文件的配置
方法一:在系统/sur/lib下加入所需的so文件,HCNetSDKCom文件下的so文件也拷贝到/usr/lib目录下。
方法二:①进入/etc/profile 里,将所需so文件的路径添加进去。例如:

expot LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/pi/java/lib:/home/pi/java/lib/HCNetSDKCom
  • 1

保存后在终端输入source /etc/profile 使其生效. 注意:export与LD_LIBRARY_PATH在一行上,中间有空格

②进入/etc/ld.so.conf下,加入所需的so文件路径。例如:

/home/pi/java/lib
/home/pi/java/lib/HCNetSDKCom
  • 1
  • 2

保存后在终端输入 ldconfig 使其生效

2 调用sdk的具体步骤
一般调用海康sdk分为:初始化sdk、注册设备、开启预览、在开启预览后对摄像头的操作、停止预览、注销、释放sdk资源。
①初始化:首先获取sdk对象,后注册。

HCNetSDK sdk = HCNetSDK.INSTANCE;
boolean b = sdk.NET_DVR_Init() //初始化
  • 1
  • 2

②注册设备:调用接口NET_DVR_Login_V30(String ip, short port, String userName, String password,NET_DVR_DEVICEINFO_V30 configInfo) 完成注册,接口所需的参数,摄像头的ip,端口号,用户名,密码,设备信息。返回-1表示失败,其他返回值代表的是用户的ID值,该ID值唯一,后续对设备的操作都要通过这个ID完成。

//获取设备信息

    HCNetSDK.NET_DVR_DEVICEINFO_V30 config = new HCNetSDK.NET_DVR_DEVICEINFO_V30();

//注册
NativeLong uId = sdk.NET_DVR_Login_V30(ip, (short) 8000, "admin", "Hist1207", config);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

③开启预览:调用NET_DVR_RealPlay_V30(NativeLong uId,LPNET_DVR_CLIENTINFO info,fRealDataCallBack_V30 callBack, Pointer pUser , boolean bBlocked),其中UId是注册后的返回值,info是预览参数,callBack是码流数据回调函数,pUser是用户信息,bBlocked请求码流是否阻塞。-1表示失败,其他值是调用其他函数的句柄参数。

// 预览参数设置

    HCNetSDK.NET_DVR_CLIENTINFO nInfo = new HCNetSDK.NET_DVR_CLIENTINFO();
    nInfo.hPlayWnd = null;
    nInfo.lChannel = new NativeLong(1);
    nInfo.lLinkMode = new NativeLong(0);
    nInfo.sMultiCastIP = null;

// 开启预览
NativeLong realPlay = sdk.NET_DVR_RealPlay_V30(uId, nInfo, new FRealDataCallBack_V30Impls(), null, false);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

④具体操作,以云台控制为例。调用NET_DVR_PTZControl(NativeLong lRealHandle,int dwPTZCommand,int dwStop)接口,lRealHandle是预览的返回值,dwPTZCommand,移动的方向,具体参考sdk文档说明,dwStop 开始或停止,0开始,1停止。

boolean b = sdk.NET_DVR_PTZControl(uId, direction, 0); //开始
boolean b1 = sdk.NET_DVR_PTZControl(uId, direction, 1);//结束
  • 1
  • 2

⑤停止预览:调用NET_DVR_StopRealPlay(NativeLong uId);uId是开启预览的返回值。

boolean b = sdk.NET_DVR_StopRealPlay(uId);
  • 1

⑥注销用户:NET_DVR_Logout_V30(NativeLong uId) uId 是注册后的返回值

boolean b1 = sdk.NET_DVR_Logout_V30(uId);
  • 1

⑦释放资源:NET_DVR_Cleanup();

boolean b2 = sdk.NET_DVR_Cleanup();
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/76306
推荐阅读
相关标签
  

闽ICP备14008679号