NVR的SKD二次开发接口文档之欧阳治创编Word格式文档下载.docx
《NVR的SKD二次开发接口文档之欧阳治创编Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《NVR的SKD二次开发接口文档之欧阳治创编Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
接口:
NET_DVR_Init
函数:
BOOLNET_DVR_Init()
参数:
无
返回值:
TRUE表示成功,FALSE表示失败。
说明:
调用设备网络SDK其他函数的前提。
2)释放SDK资源
NET_DVR_Cleanup
BOOLNET_DVR_Cleanup()
在结束之前最后调用。
接口返回失败请调用NET_DVR_GetLastError获取错误码,通过错误码判断出错原因。
1.2NVR用户的认证/登录
1)激活设备
NET_DVR_ActivateDevice
BOOLNET_DVR_ActivateDevice(char*sDVRIP,WORDwDVRPort,LPNET_DVR_ACTIVATECFGlpActivateCfg)
参数:
[in]sDVRIP设备IP地址
[in]wDVRPort设备端口
[in]lpActivateCfg激活参数,包括激活使用的初始密码
出厂设备需要先激活,然后再使用激活使用的初始密码登录设备。
2)IPServer或者DDNS域名解析,获取动态IP地址和端口号
NET_DVR_GetDVRIPByResolveSvr_EX
BOOLNET_DVR_GetDVRIPByResolveSvr_EX(char*sServerIP,WORDwServerPort,BYTE*sDVRName,WORDwDVRNameLen,BYTE*sDVRSerialNumber,WORDwDVRSerialLen,char*sGetIP,DWORD*dwPort)
[in]sServerIP解析服务器的IP地址
[in]wServerPort解析服务器的端口号,IPServer解析服务器端口号为7071,HiDDNS服务器的端口号为80
[in]sDVRName设备名称
[in]wDVRNameLen设备名称的长度
[in]sDVRSerialNumber设备的序列号
[in]wDVRSerialLen设备序列号的长度
[out]sGetIP获取到的设备IP地址指针
[out]dwPort获取到的设备端口号指针
说明:
该接口中的设备名称和设备序列号不能同时为空。
通过设备域名或者序列号解析出设备当前IP地址和端口,然后调用NET_DVR_Login_V40登录设备。
支持的解析服务器有IPServer和hiDDNS。
3)用户注册设备
NET_DVR_Login_V40
函数:
LONGNET_DVR_Login_V40(LPNET_DVR_USER_LOGIN_INFOpLoginInfo,LPNET_DVR_DEVICEINFO_V40lpDeviceInfo)
[in]pLoginInfo登录参数,包括设备地址、登录用户、密码等
[out]lpDeviceInfo设备信息(同步登录即pLoginInfo中bUseAsynLogin为0时有效
异步登录的状态、用户ID和设备信息通过NET_DVR_USER_LOGIN_INFO结构体中设置的回调函数(fLoginResultCallBack)返回。
对于同步登录,接口返回-1表示登录失败,其他值表示返回的用户ID值。
用户ID具有唯一性,后续对设备的操作都需要通过此ID实现。
pLoginInfo中bUseAsynLogin为0时登录为同步模式,接口返回成功即表示登录成功;
pLoginInfo中bUseAsynLogin为1时登录为异步模式,登录是否成功在输入参数设置的回调函数中返回。
设备同时最多允许128个用户注册。
SDK支持2048个注册,返回UserID的取值范围为0~2047。
4)用户注销
NET_DVR_Logout
BOOLNET_DVR_Logout(LONGlUserID)
[in]lUserID用户ID号,NET_DVR_Login_V40的返回值
TRUE表示成功,FALSE表示失败。
建议使用此接口实现注销功能。
2视频监控浏览
1)启动预览
NET_DVR_RealPlay_V40
LONGNET_DVR_RealPlay_V40(LONGlUserID,LPNET_DVR_PREVIEWINFOlpPreviewInfo,
REALDATACALLBACKfRealDataCallBack_V30,void*pUser)
[in]lUserIDNET_DVR_Login_V40的返回值
[in]lpPreviewInfo预览参数,包括通道号、码流类型、取流协议
[in]fRealDataCallBack_V30码流数据回调函数
[in]pUser用户数据
-1表示失败,其他值作为NET_DVR_StopRealPlay等函数的句柄参数。
接口返回失败请调用
NET_DVR_GetLastError获取错误码,通过错误码判断出错原因。
该接口预览参数结构中可以设置当前预览操作是否阻塞(通过bBlocked参数设置),若设为不阻塞,表示发起与设备的连接就认为连接成功,如果发生码流接收失败、播放失败等情况
以预览异常的方式通知上层。
在循环播放的时候可以减短停顿的时间,与NET_DVR_RealPlay处理一致。
若设为阻塞,表示直到播放操作完成才返回成功与否。
该接口中的回调函数可以置为空,这样该函数将不回调码流数据给用户,不过用户仍可以通过接口NET_DVR_SetRealDataCallBack或NET_DVR_SetStandardDataCallBack注册捕获码流数据
的回调函数以捕获码流数据。
fRealDataCallBack_V30回调函数中不能执行可能会占用时间较长的接口或操作,不建议调用该SDK(HCNetSDK.dll)本身的接口。
Linux64位系统不支持软解码功能,因此需要将窗口句柄传NULL,设置回调函数,只取流不解码显示。
客户端异常离线时,设备端对取流连接的保持时间为10秒。
2)停止预览
NET_DVR_StopRealPlay
LONGNET_DVR_StopRealPlay(LONGlRealHandle)
[in]lRealHandle预览句柄,NET_DVR_RealPlay_V40的返回值
3)获取预览时用来解码和显示的播放库句柄
NET_DVR_GetRealPlayerIndex
intNET_DVR_GetRealPlayerIndex(LONGlRealHandle)
-1表示失败,其他值表示播放句柄。
用户可以通过返回的句柄自行实现播放库SDK提供的其他功能,详见本公司提供的软解码库函数说明《播放器SDK编程指南》。
3IPC录像
3.1IPC信息操作
1)获取IPC信息列表
NET_DVR_GetSadpInfoList
BOOLNET_DVR_GetSadpInfoList(LONGlUserID,LPNET_DVR_SADPINFO_LISTlpSadpInfoList)
[in]lUserIDNET_DVR_Login_V40的返回值
[out]lpSadpInfoListIPC信息列表结构
2)修改IPC信息
NET_DVR_UpdateSadpInfo
BOOLNET_DVR_UpdateSadpInfo(LONGlUserID,LPNET_DVR_SADP_VERIFYlpSadpVerify,
LPNET_DVR_SADPINFOlpSadpInfo)
[in]lpSadpVerify校验信息
[in]lpSadpInfo修改的IPC信息列表结构
3.2声音控制功能
1)设置声音播放模式
NET_DVR_SetAudioMode
BOOLNET_DVR_SetAudioMode(DWORDdwMode)
[in]dwMode声音播放模式:
1-独占声卡,单路音频模式;
2-共享声卡,多路音频模式
不调用该接口设置声音播放模式,默认为独占播放。
2)独占声卡模式下开启声音
NET_DVR_OpenSound
BOOLNET_DVR_OpenSound(LONGlRealHandle)
[in]lRealHandleNET_DVR_RealPlay_V40的返回值
如果当前是共享模式播放,调用该接口将返回失败。
以独占方式只能打开一路通道播放,即依次打开多个通道时仅打开最后一路。
3)独占声卡模式下关闭声音
NET_DVR_CloseSound
BOOLNET_DVR_CloseSound()
接口返回失败请调用NET_DVR_GetLastE