public interface HikNetSDKLibrary
extends com.sun.jna.Library
限定符和类型 | 字段和说明 |
---|---|
static int |
FALSE |
static HikNetSDKLibrary |
INSTANCE |
static java.lang.String |
JNA_LIBRARY_NAME |
static com.sun.jna.NativeLibrary |
JNA_NATIVE_LIB |
static int |
SERIALNO_LEN
序列号长度
|
static int |
TRUE |
限定符和类型 | 方法和说明 |
---|---|
int |
NET_DVR_Cleanup()
释放SDK资源,在程序结束之前调用。
|
java.lang.String |
NET_DVR_GetErrorMsg(com.sun.jna.ptr.IntByReference pErrorNo)
返回最后操作的错误码信息。
|
int |
NET_DVR_GetLastError()
返回最后操作的错误码。
|
int |
NET_DVR_Init()
初始化SDK,调用其他SDK函数的前提。
|
int |
NET_DVR_Login_V30(java.lang.String sDVRIP,
short wDVRPort,
java.lang.String sUserName,
java.lang.String sPassword,
NET_DVR_DEVICEINFO_V30.ByReference lpDeviceInfo)
用户注册设备。
|
int |
NET_DVR_Logout_V30(int lUserID)
用户注销。
|
int |
NET_DVR_Logout(int lUserID)
用户注销。
|
int |
NET_DVR_RealPlay_V30(int lUserID,
NET_DVR_CLIENTINFO.ByReference lpClientInfo,
RealDataCallBack_V30 cbRealDataCallBack,
com.sun.jna.Pointer pUser,
int bBlocked)
实时预览。
|
int |
NET_DVR_RebootDVR(int lUserID)
重启设备。
|
int |
NET_DVR_SetExceptionCallBack_V30(int reserved1,
com.sun.jna.Pointer reserved2,
ExceptionCallBack fExceptionCallBack,
com.sun.jna.Pointer pUser)
注册接收异常、重连等消息的窗口句柄或回调函数。
|
int |
NET_DVR_SetRealDataCallBack(int lRealHandle,
RealDataCallBack cbRealDataCallBack,
int dwUser)
注册回调函数,捕获实时码流数据。
|
int |
NET_DVR_SetReconnect(int dwInterval,
int bEnableRecon)
设置重连功能。
|
int |
NET_DVR_SetStandardDataCallBack(int lRealHandle,
RealDataCallBack cbStdDataCallBack,
int dwUser)
注册回调函数,捕获实时码流数据(标准码流)。
|
int |
NET_DVR_ShutDownDVR(int lUserID)
关闭设备。
|
int |
NET_DVR_StopRealPlay(int lRealHandle)
停止预览。
|
static final java.lang.String JNA_LIBRARY_NAME
static final com.sun.jna.NativeLibrary JNA_NATIVE_LIB
static final HikNetSDKLibrary INSTANCE
static final int SERIALNO_LEN
static final int TRUE
static final int FALSE
int NET_DVR_GetLastError()
网络通讯库错误码
RTSP通讯库错误码
java.lang.String NET_DVR_GetErrorMsg(com.sun.jna.ptr.IntByReference pErrorNo)
通过NET_DVR_GetLastError()
函数可获取错误号值。
pErrorNo
- 错误码数值的指针NET_DVR_GetLastError()
int NET_DVR_Init()
TRUE
表示成功,FALSE
表示失败。
获取错误码调用NET_DVR_GetLastError()
以下是该接口可能返回的错误值
错误类型 | 错误值 | 错误信息 |
---|---|---|
ErrorNumber.NET_DVR_NOERROR | 0 | 没有错误。 |
ErrorNumber.NET_DVR_ALLOC_RESOURCE_ERROR | 41 | SDK资源分配错误。 |
ErrorNumber.NET_DVR_GETLOCALIPANDMACFAIL | 53 | 获得本地PC的IP地址或物理地址失败。 |
NET_DVR_Cleanup()
int NET_DVR_Cleanup()
TRUE
表示成功,FALSE
表示失败。
获取错误码调用NET_DVR_GetLastError()
NET_DVR_Init()
int NET_DVR_SetReconnect(int dwInterval, int bEnableRecon)
该接口可以同时控制预览、透明通道和布防的重连功能。 不调用该接口时,SDK默认启动预览、透明通道和布防的重连功能,重连时间间隔为5秒。
dwInterval
- 重连间隔,单位:毫秒bEnableRecon
- 是否重连,0-不重连,1-重连,参数默认值为1TRUE
表示成功,FALSE
表示失败。
获取错误码调用NET_DVR_GetLastError()
以下是该接口可能返回的错误值
错误类型 | 错误值 | 错误信息 |
---|---|---|
ErrorNumber.NET_DVR_NOERROR | 0 | 没有错误。 |
ErrorNumber.NET_DVR_NOINIT | 3 | SDK未初始化。 |
int NET_DVR_SetExceptionCallBack_V30(int reserved1, com.sun.jna.Pointer reserved2, ExceptionCallBack fExceptionCallBack, com.sun.jna.Pointer pUser)
reserved1
- Linux下该参数保留reserved2
- Linux下该参数保留fExceptionCallBack
- 接收异常消息的回调函数,回调当前异常的相关信息pUser
- 用户数据TRUE
表示成功,FALSE
表示失败。
获取错误码调用NET_DVR_GetLastError()
int NET_DVR_Login_V30(java.lang.String sDVRIP, short wDVRPort, java.lang.String sUserName, java.lang.String sPassword, NET_DVR_DEVICEINFO_V30.ByReference lpDeviceInfo)
如DS-7116、DS-81xx、DS-90xx、DS-91xx等系列设备允许有32个注册用户名,且同时最多允许128个用户注册; 如DS-80xx等设备允许有16个注册用户名,且同时最多允许128个用户注册。
SDK支持512个注册,返回UserID逐一递增,从0到511之后又返回0,注销以及NET_DVR_Cleanup均没有初始化为0。
客户端发生异常离线时,设备端保留用户ID的有效时间是5分钟。
sDVRIP
- 设备IP地址wDVRPort
- 设备端口号sUserName
- 登录的用户名sPassword
- 用户密码lpDeviceInfo
- [out] 设备信息NET_DVR_GetLastError()
以下是该接口可能返回的错误值
错误类型 | 错误值 | 错误信息 |
---|---|---|
ErrorNumber.NET_DVR_NOERROR | 0 | 没有错误。 |
ErrorNumber.NET_DVR_PASSWORD_ERROR | 1 | 用户名密码错误。注册时输入的用户名或者密码错误。 |
ErrorNumber.NET_DVR_NOINIT | 3 | SDK未初始化。 |
ErrorNumber.NET_DVR_NETWORK_FAIL_CONNECT | 7 | 连接设备失败。设备不在线或网络原因引起的连接超时等。 |
ErrorNumber.NET_DVR_NETWORK_SEND_ERROR | 8 | 向设备发送失败。 |
ErrorNumber.NET_DVR_NETWORK_RECV_ERROR | 9 | 从设备接收数据失败。 |
ErrorNumber.NET_DVR_NETWORK_RECV_TIMEOUT | 10 | 从设备接收数据超时。 |
ErrorNumber.NET_DVR_COMMANDTIMEOUT | 14 | 设备命令执行超时。 |
ErrorNumber.NET_DVR_PARAMETER_ERROR | 17 | 参数错误。SDK接口中给入的输入或输出参数为空。 |
ErrorNumber.NET_DVR_ALLOC_RESOURCE_ERROR | 41 | SDK资源分配错误。 |
ErrorNumber.NET_DVR_NOENOUGH_BUF | 43 | 缓冲区太小。接收设备数据的缓冲区或存放图片缓冲区不足。 |
ErrorNumber.NET_DVR_CREATESOCKET_ERROR | 44 | 创建SOCKET出错。 |
ErrorNumber.NET_DVR_MAX_NUM | 46 | 个数达到最大。分配的注册连接数、预览连接数超过SDK支持的最大数。 |
ErrorNumber.NET_DVR_MAX_USERNUM | 52 | 登录设备的用户数达到最大。 |
ErrorNumber.NET_DVR_BINDSOCKET_ERROR | 72 | 绑定套接字失败。 |
ErrorNumber.NET_DVR_SOCKETCLOSE_ERROR | 73 | socket连接中断,此错误通常是由于连接中断或目的地不可达。 |
NET_DVR_Logout_V30(int)
int NET_DVR_Logout_V30(int lUserID)
该接口强制停止该用户的所有操作和释放所有的资源,确保该ID对应的线程都安全退出,资源得到释放。 建议使用NET_DVR_Logout接口实现注销功能。
lUserID
- 用户ID号,NET_DVR_Login_V30(java.lang.String, short, java.lang.String, java.lang.String, com.hikvision.netsdk.linux.NET_DVR_DEVICEINFO_V30.ByReference)
的返回值TRUE
表示成功,FALSE
表示失败。
获取错误码调用NET_DVR_GetLastError()
以下是该接口可能返回的错误值
错误类型 | 错误值 | 错误信息 |
---|---|---|
ErrorNumber.NET_DVR_NOERROR | 0 | 没有错误。 |
ErrorNumber.NET_DVR_NOINIT | 3 | SDK未初始化。 |
ErrorNumber.NET_DVR_NETWORK_FAIL_CONNECT | 7 | 连接设备失败。设备不在线或网络原因引起的连接超时等。 |
ErrorNumber.NET_DVR_NETWORK_SEND_ERROR | 8 | 向设备发送失败。 |
ErrorNumber.NET_DVR_NETWORK_RECV_ERROR | 9 | 从设备接收数据失败。 |
ErrorNumber.NET_DVR_NETWORK_RECV_TIMEOUT | 10 | 从设备接收数据超时。 |
ErrorNumber.NET_DVR_COMMANDTIMEOUT | 14 | 设备命令执行超时。 |
ErrorNumber.NET_DVR_PARAMETER_ERROR | 17 | 参数错误。SDK接口中给入的输入或输出参数为空。 |
ErrorNumber.NET_DVR_ALLOC_RESOURCE_ERROR | 41 | SDK资源分配错误。 |
ErrorNumber.NET_DVR_CREATESOCKET_ERROR | 44 | 创建SOCKET出错。 |
ErrorNumber.NET_DVR_USERNOTEXIST | 47 | 用户不存在。注册的用户ID已注销或不可用。 |
ErrorNumber.NET_DVR_BINDSOCKET_ERROR | 72 | 绑定套接字失败。 |
ErrorNumber.NET_DVR_SOCKETCLOSE_ERROR | 73 | socket连接中断,此错误通常是由于连接中断或目的地不可达。 |
NET_DVR_Login_V30(java.lang.String, short, java.lang.String, java.lang.String, com.hikvision.netsdk.linux.NET_DVR_DEVICEINFO_V30.ByReference)
int NET_DVR_Logout(int lUserID)
建议使用此接口实现注销功能。
lUserID
- 用户ID号,NET_DVR_Login_V30(java.lang.String, short, java.lang.String, java.lang.String, com.hikvision.netsdk.linux.NET_DVR_DEVICEINFO_V30.ByReference)
的返回值TRUE
表示成功,FALSE
表示失败。
获取错误码调用NET_DVR_GetLastError()
以下是该接口可能返回的错误值
错误类型 | 错误值 | 错误信息 |
---|---|---|
ErrorNumber.NET_DVR_NOERROR | 0 | 没有错误。 |
ErrorNumber.NET_DVR_NOINIT | 3 | SDK未初始化。 |
ErrorNumber.NET_DVR_NETWORK_FAIL_CONNECT | 7 | 连接设备失败。设备不在线或网络原因引起的连接超时等。 |
ErrorNumber.NET_DVR_NETWORK_SEND_ERROR | 8 | 向设备发送失败。 |
ErrorNumber.NET_DVR_NETWORK_RECV_ERROR | 9 | 从设备接收数据失败。 |
ErrorNumber.NET_DVR_NETWORK_RECV_TIMEOUT | 10 | 从设备接收数据超时。 |
ErrorNumber.NET_DVR_COMMANDTIMEOUT | 14 | 设备命令执行超时。 |
ErrorNumber.NET_DVR_PARAMETER_ERROR | 17 | 参数错误。SDK接口中给入的输入或输出参数为空。 |
ErrorNumber.NET_DVR_ALLOC_RESOURCE_ERROR | 41 | SDK资源分配错误。 |
ErrorNumber.NET_DVR_CREATESOCKET_ERROR | 44 | 创建SOCKET出错。 |
ErrorNumber.NET_DVR_USERNOTEXIST | 47 | 用户不存在。注册的用户ID已注销或不可用。 |
ErrorNumber.NET_DVR_BINDSOCKET_ERROR | 72 | 绑定套接字失败。 |
ErrorNumber.NET_DVR_SOCKETCLOSE_ERROR | 73 | socket连接中断,此错误通常是由于连接中断或目的地不可达。 |
NET_DVR_Login_V30(java.lang.String, short, java.lang.String, java.lang.String, com.hikvision.netsdk.linux.NET_DVR_DEVICEINFO_V30.ByReference)
int NET_DVR_RealPlay_V30(int lUserID, NET_DVR_CLIENTINFO.ByReference lpClientInfo, RealDataCallBack_V30 cbRealDataCallBack, com.sun.jna.Pointer pUser, int bBlocked)
该接口中可以设置当前预览操作是否阻塞(通过bBlocked参数设置)。 若设为不阻塞,表示发起与设备的连接就认为连接成功,如果发生码流接收失败、播放失败等情况以预览异常的方式通知上层。 在循环播放的时候可以减短停顿的时间,与NET_DVR_RealPlay处理一致。 若设为阻塞,表示直到播放操作完成才返回成功与否。
该接口中的回调函数可以置为空,这样该函数将不回调码流数据给用户,不过用户仍可以通过接口NET_DVR_SetRealDataCallBack(int, com.hikvision.netsdk.linux.callback.RealDataCallBack, int)
或NET_DVR_SetStandardDataCallBack(int, com.hikvision.netsdk.linux.callback.RealDataCallBack, int)
注册捕获码流数据的回调函数以捕获码流数据。
客户端异常离线时,设备端对取流连接的保持时间为10秒。
lUserID
- NET_DVR_Login_V30的返回值lpClientInfo
- 预览参数cbRealDataCallBack
- 码流数据回调函数pUser
- 用户数据bBlocked
- 请求码流过程是否阻塞:0-否;1-是NET_DVR_StopRealPlay(int)
等函数的句柄参数。
获取错误码调用NET_DVR_GetLastError()
以下是该接口可能返回的错误值
NET_DVR_StopRealPlay(int)
int NET_DVR_StopRealPlay(int lRealHandle)
lRealHandle
- 预览句柄,NET_DVR_RealPlay_V30(int, com.hikvision.netsdk.linux.NET_DVR_CLIENTINFO.ByReference, com.hikvision.netsdk.linux.callback.RealDataCallBack_V30, com.sun.jna.Pointer, int)
的返回值
推模式:预览句柄lStreamHandle,由NET_DVR_SetPreviewResponseCallBack注册的回调函数返回。
TRUE
表示成功,FALSE
表示失败。
获取错误码调用NET_DVR_GetLastError()
以下是该接口可能返回的错误值
错误类型 | 错误值 | 错误信息 |
---|---|---|
ErrorNumber.NET_DVR_NOERROR | 0 | 没有错误。 |
ErrorNumber.NET_DVR_NOINIT | 3 | SDK未初始化。 |
ErrorNumber.NET_DVR_ORDER_ERROR | 12 | 调用次序错误。 |
ErrorNumber.NET_DVR_PARAMETER_ERROR | 17 | 参数错误。SDK接口中给入的输入或输出参数为空。 |
ErrorNumber.NET_DVR_ALLOC_RESOURCE_ERROR | 41 | SDK资源分配错误。 |
ErrorNumber.NET_DVR_LOADDSSDKPROC_ERROR | 67 | 找不到DsSdk中某个函数入口。 |
ErrorNumber.NET_DVR_DSSDK_ERROR | 68 | 调用硬解码库DsSdk中某个函数失败。 |
ErrorNumber.NET_DVR_LOADPLAYERSDKPROC_ERROR | 65 | 找不到Player Sdk中某个函数入口。 |
NET_DVR_RealPlay_V30(int, com.hikvision.netsdk.linux.NET_DVR_CLIENTINFO.ByReference, com.hikvision.netsdk.linux.callback.RealDataCallBack_V30, com.sun.jna.Pointer, int)
int NET_DVR_SetRealDataCallBack(int lRealHandle, RealDataCallBack cbRealDataCallBack, int dwUser)
此函数包括开始和停止用户处理SDK捕获的数据,当回调函数cbRealDataCallBack设为非NULL值时,表示回调和处理数据; 当设为NULL时表示停止回调和处理数据。回调的第一个包是40个字节的文件头,供后续解码使用,之后回调的是压缩的码流。 回调数据最大为256K字节。
lRealHandle
- NET_DVR_RealPlay_V30(int, com.hikvision.netsdk.linux.NET_DVR_CLIENTINFO.ByReference, com.hikvision.netsdk.linux.callback.RealDataCallBack_V30, com.sun.jna.Pointer, int)
的返回值cbRealDataCallBack
- 码流数据回调函数dwUser
- 用户数据TRUE
表示成功,FALSE
表示失败。
获取错误码调用NET_DVR_GetLastError()
NET_DVR_RealPlay_V30(int, com.hikvision.netsdk.linux.NET_DVR_CLIENTINFO.ByReference, com.hikvision.netsdk.linux.callback.RealDataCallBack_V30, com.sun.jna.Pointer, int)
int NET_DVR_SetStandardDataCallBack(int lRealHandle, RealDataCallBack cbStdDataCallBack, int dwUser)
此函数包括开始和停止用户处理SDK捕获的数据,当回调函数cbStdDataCallBack设为非NULL值时,表示回调和处理数据; 当设为NULL时表示停止回调和处理数据。回调的第一个包是40个字节的文件头,供后续解码使用, 之后回调的是标准码流(含12字节的RTP头)。
此函数目前仅支持对于支持RTSP协议取流的设备的标准码流回调。
lRealHandle
- NET_DVR_RealPlay_V30(int, com.hikvision.netsdk.linux.NET_DVR_CLIENTINFO.ByReference, com.hikvision.netsdk.linux.callback.RealDataCallBack_V30, com.sun.jna.Pointer, int)
的返回值cbStdDataCallBack
- 标准码流回调函数dwUser
- 用户数据TRUE
表示成功,FALSE
表示失败。
获取错误码调用NET_DVR_GetLastError()
NET_DVR_RealPlay_V30(int, com.hikvision.netsdk.linux.NET_DVR_CLIENTINFO.ByReference, com.hikvision.netsdk.linux.callback.RealDataCallBack_V30, com.sun.jna.Pointer, int)
int NET_DVR_RebootDVR(int lUserID)
lUserID
- 用户ID号,NET_DVR_Login_V30(java.lang.String, short, java.lang.String, java.lang.String, com.hikvision.netsdk.linux.NET_DVR_DEVICEINFO_V30.ByReference)
的返回值TRUE
表示成功,FALSE
表示失败。
获取错误码调用NET_DVR_GetLastError()
int NET_DVR_ShutDownDVR(int lUserID)
lUserID
- 用户ID号,NET_DVR_Login_V30(java.lang.String, short, java.lang.String, java.lang.String, com.hikvision.netsdk.linux.NET_DVR_DEVICEINFO_V30.ByReference)
的返回值TRUE
表示成功,FALSE
表示失败。
获取错误码调用NET_DVR_GetLastError()