车载3G 客户端SDK使用说明.docx
《车载3G 客户端SDK使用说明.docx》由会员分享,可在线阅读,更多相关《车载3G 客户端SDK使用说明.docx(91页珍藏版)》请在冰豆网上搜索。
车载3G客户端SDK使用说明
车载3G客户端SDK使用说明
Changelist
日期
文档版本
修改内容
备注
2012-01-15
V001
第一版
使用环境说明
系统要求
WIN2000以上,Directdraw加速开启,颜色质量32位色
前端设备
车载3G系列
目录
SDK主要功能说明4
网络SDK5
网络SDK调用流程5
网络SDK调用流程说明6
1.SDK初始化7
1.1API接口7
2.注册设备8
2.1API接口8
3.用户登录10
3.1API接口10
3.2数据类型11
4.预览相关功能模块12
预览流程12
4.1API接口13
4.2数据类型19
5.设备录像和回放下载模块21
录像回放下载流程21
5.1API接口22
5.2数据类型25
5.3数据列表27
6.语音对讲模块28
语音对讲流程28
6.1API接口29
6.2数据类型30
6.3数据列表31
7.远程控制管理模块32
7.1API接口32
7.2数据类型35
附1网络SDK错误值表:
37
文件SDK39
文件SDK调用流程39
文件SDK调用流程说明40
1.打开&关闭文件41
1.1API接口41
1.2数据类型41
2.读文件相关接口42
2.1API接口42
2.2数据类型47
3.写文件相关接口47
3.1API接口47
3.2数据类型49
播放SDK50
播放SDK调用流程50
播放SDK调用流程说明51
1.初始通用接口52
1.1API接口52
1.2数据类型53
2.开始播放54
2.1API接口54
2.2数据类型57
3.播放控制58
3.1API接口58
4.辅助功能62
4.1API接口62
附2播放SDK错误值表:
65
SDK主要功能说明
车载3G客户端SDK根据实际使用需要,包含三个SDK库。
网络SDK,文件SDK和播放SDK。
用户可根据实际使用需要选择合适的SDK进行开发。
大致说明见下表。
SDK模块
主要功能
库文件
头文件
网络SDK
与前端设备通信,接收码流,解码输出
NetDvr2.dll
NetDvr2.lib
TLPlay.dll
netdvr.h
文件SDK
IFV文件的读写
NetDvr2.dll
NetDvr2.lib
TLPlay.dll
hi_h264dec_w.dll
TLFileLib.h
播放SDK
对视频音频的码流解码并显示和播放
TLPlay.dll
TLPlay.lib
hi_h264dec_w.dll
TLPlay.h
接下来会对各个SDK的接口进行详细说明。
网络SDK
网络SDK调用流程
网络SDK调用流程说明
1.初始化SDK(NETDVR_startup):
对整个网络SDK系统的初始化,内存预分配等操作。
2.设置连接超时时间(NETDVR_setConnectTimeout):
这部分为可选,用于设置SDK中的网络连接超时时间,用户可以根据自己的需要设置该值。
在不调用此接口设置超时时间的情况下,将采用SDK中的默认值(3000ms)。
3.创建客户端(NETDVR_createClient):
创建客户端。
4.注册断链通知(NETDVR_CLIENT_regCBMsgConnLost):
这部分可选。
当设备断线后能得到通知。
5.注册设备上下线回调(NETDVR_CLIENT_regCBDeviceUpdate):
这部分可选。
返回设备更新消息。
6.注册设备状态信息(NETDVR_CLIENT_regCBDeviceState):
这部分可选。
返回设备状态信息。
7.注册GPS信息回调(NETDVR_CLIENT_regCBGps):
这部分可选。
用于注册GPS信息。
8.登陆服务器(NETDVR_loginServer_3g):
3G模式下登陆服务器。
9.获得设备列表(NETDVR_getDeviceList):
获得设备信息列表。
10.创建设备连接(NETDVR_createDVR_3g):
3G模式下的创建设备。
11.预览相关功能模块:
开启/关闭预览。
具体流程详见预览相关功能模块。
12.录像和回放下载模块:
根据条件录像。
可以通过按时间和按文件名的方式远程回放或者下载前端服务器的录像文件,后续可以进行解码或者存储。
具体流程详见录像和回放下载模块。
13.语音对讲模块:
实现和前端服务器的语音数据对讲和语音数据获取,音频编码格式可以指定。
具体流程详见语音对讲模块。
14.远程控制模块:
实现重启设备、恢复默认值、消除报警、远程更新。
具体流程详见远程控制管理模块。
15.注销登录(NETDVR_logoutServer_3g):
3G模式下发送命令让设备下线。
16.销毁客户端(NETDVR_destroyClient):
销毁客户端。
17.SDK资源释放(NETDVR_cleanup):
对网络SDK系统的初始化,内存预分配等操作。
1.SDK初始化
1.1API接口
1.1.1初始化SDK
函数原型:
int__stdcallNETDVR_startup(void);
功能:
初始化SDK,调用其它SDK函数的前提。
参数说明:
无。
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
1.1.2释放SDK资源
函数原型:
int__stdcallNETDVR_cleanup(void);
功能:
释放SDK资源,在结束之前最后调用。
参数说明:
无。
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
1.1.3设置连接超时时间
函数原型:
int__stdcallNETDVR_setConnectTimeout(unsignedintmillisecond);
功能:
设置全局连接超时时间。
缺省为3000ms。
此函数可在初始化后随时调用,对调用后的连接起效。
参数说明:
millisecond:
连接超时时间。
单位毫秒。
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
1.1.4获得连接超时时间
函数原型:
int__stdcallNETDVR_getConnectTimeout(unsignedint*pMillisecond);
功能:
获得当前全局连接超时时间。
参数说明:
*pMillisecond:
连接超时时间。
单位毫秒。
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
2.注册设备
2.1API接口
2.1.1注册设备
函数原型:
int__stdcallNETDVR_createClient(structNETDVR_addrInfo_t*pAddrInfo);
功能:
创建客户端
参数说明:
structNETDVR_addrInfo_t
{
unsignedintip;//IP地址
unsignedshortport;//端口号
};
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
2.1.3注销设备
函数原型:
voidNETDVR_destroyClient(void)
功能:
销毁客户端
参数说明:
无
返回值:
无
2.1.4注册断链通知
函数原型:
int__stdcallNETDVR_CLIENT_regCBMsgConnLost(PFUN_CONNMSG_Tp_cb_func,unsignedintdwContent);
功能:
注册回调函数,当设备断线后能得到通知。
参数说明:
p_cb_func:
回调函数
dwContent:
用户自定义回调函数参数
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
2.1.5注册设备上下线回调
函数原型:
int__stdcallNETDVR_CLIENT_regCBDeviceUpdate(PFUN_CBMSG_Tp_cb_func,unsignedintdwContent);
功能:
注册设备更新消息回调。
参数说明:
p_cb_fun:
消息回调函数
dwContent:
用户回调函数上下文
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
2.1.6注册设备状态信息
函数原型:
int__stdcallNETDVR_CLIENT_regCBDeviceState(PFUN_DEVICESTATECBMSG_Tp_cb_func,unsignedintdwContent);
功能:
注册设备状态信息回调。
参数说明:
p_cb_fun:
消息回调函数
dwContent:
用户回调函数上下文
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
2.1.7注册GPS信息回调
函数原型:
int__stdcallNETDVR_CLIENT_regCBGps(PFUN_DEVICESTATECBMSG_Tp_cb_func,unsignedintdwContent);
功能:
用于注册GPS信息回调
参数说明:
p_cb_fun:
设备状态信息回调函数
dwContent:
用户回调函数上下文
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
3.用户登录
3.1API接口
3.1.1登录服务器
函数原型:
int__stdcallNETDVR_loginServer_3g(conststructNETDVR_loginInfo_3g_t*pLoginInfo);
功能:
3G模式下登陆服务器。
参数说明:
pLoginInfo:
登陆信息
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
3.1.2注销登陆
函数原型:
int__stdcallNETDVR_logoutServer_3g(intHandle);
功能:
3G模式下发送命令让设备下线。
参数说明:
Handle:
设备句柄。
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
3.1.2获得设备列表
函数原型:
int__stdcallNETDVR_getDeviceList(structNETDVR_devicenode_t*pDeviceList,intmaxnum,int*pNum);
功能:
获得设备信息列表。
参数说明:
pDeviceList:
设备结构
maxnum:
支持最大的设备数
pNum:
实际的设备数
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
3.1.3创建设备连接
函数原型:
int__stdcallNETDVR_createDVR_3g(int*p_handle,char*id,structNETDVR_devicenode_t*deviceInfo);
功能:
3G模式下的创建设备。
参数说明:
p_handle:
设备句柄
id:
设备id
deviceInfo:
设备信息
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
3.2数据类型
3.2.13g模式下登陆信息结构体
structNETDVR_loginInfo_3g_t
{
charname[32];//名称,字符串
charuser[16];//用户名,字符串
charpass[10];//密码,字符串
};
3.2.2设备信息结构体
structNETDVR_devicenode_t
{
chardevice_ID[32];//设备ID号
chardevice_name[32];//设备名
chargroup[32];//所在组
unsignedcharmaxChnNum;//最大通道数
unsignedcharmaxAduioNum;//最大音频数
unsignedcharmaxSubstreamNum;//最大子码流数
unsignedcharmaxPlaybackNum;//最大回放数
unsignedcharmaxAlarmInNum;//最大报警输入数
unsignedcharmaxAlarmOutNum;//最大报警输出数
unsignedcharmaxHddNum;//最大硬盘数
unsignedcharstate;//0:
下线,1:
上线
unsignedcharmobileNumber[12];//手机号
unsignedcharreserved[52];
};
4.预览相关功能模块
预览流程
图中虚线框部分的模块是与预览模块相关,必须在启动预览后才能调用,这些模块之间是并列的关系,各自完成相应的功能。
·声音控制功能主要实现独占声音的码流接收,打开和关闭。
相关接口有:
NETDVR_openAudioReciever、NETDVR_startAudioSend、NETDVR_closeAudioReciever、
NETDVR_stopAudioSend、NETDVR_mutePreViewAudio。
·实时流数据录像模块主要实现数据回调和本地录像的功能,可以供用户后续处理。
相关接
口有:
NETDVR_startSubRecord、NETDVR_stopSubRecord、NETDVR_setSubRecordFileNameCB等。
·解码控制实现动态控制视频是否解码。
相关接口有:
NETDVR_SetVideoDecFlag
·抓图功能主要实现对当前解码图像的捕获,保存格式为BMP或JPG。
相关接口有:
NETDVR_Subsnapshot。
4.1API接口
4.1.1打开视频子码流接收
函数原型:
int__stdcallNETDVR_openSubVideoReciever(intHandle,unsignedcharchn,pFrameCallBackpCBFun,unsignedintdwContent);
功能:
设置子码流接收。
参数说明:
Handle:
网络传输句柄;
chn:
通道号;
pCBFun:
编码码流的回调函数;
dwContent:
用户回调函数上下文。
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
4.1.2创建解码器
函数原型:
int__stdcallNETDVR_createSubVideoDecoder(intHandle,unsignedcharrcv_chn,pDecFrameCallBackpCBFun,unsignedintdwContent);
功能:
创建视频通道子码流解码器。
参数说明:
Handle:
句柄
rcv_chn:
通道号
pCBFun:
解码后数据回调函数
dwContent:
用户自定义回调函数参数
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
4.1.3设置解码格式
函数原型:
int__stdcallNETDVR_setSubDecoderFMT(intHandle,unsignedcharrcv_chn,
fmt_type_tfmt);
功能:
设置子码流解码格式。
参数说明:
Handle:
句柄
rcv_chn:
通道号
fmt:
解码之后的格式
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
4.1.4开始子码流传输
函数原型:
int__stdcallNETDVR_startSubVideoSend(intHandle,unsignedcharchn);
功能:
开始发送子码流。
参数说明:
Handle:
句柄
chn:
通道号
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
4.1.5控制是否视频解码
函数原型:
int__stdcallNETDVR_SetVideoDecFlag(intnRealPlayHandle,unsignedcharbDec);
功能:
动态控制是否视频解码。
缺省是解码
参数说明:
nRealPlayHandle:
预览句柄
bDec:
0-不解码1-解码
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
注意:
当从不解码切换到解码时,需要等到下一个关键帧才能开始解码
4.1.6停止子码流传输
函数原型:
int__stdcallNETDVR_stopSubVideoSend(intHandle,unsignedcharchn);
功能:
停止发送子码流。
参数说明:
Handle:
句柄
chn:
通道号
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
4.1.7销毁解码器
函数原型:
int__stdcallNETDVR_destroySubVideoDecoder(intHandle,unsignedcharrcv_chn);
功能:
销毁子码流解码器。
参数说明:
Handle:
句柄
rcv_chn:
通道号
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
4.1.8关闭视频子码流接收
函数原型:
int__stdcallNETDVR_closeSubVideoReciever(intHandle,unsignedcharrcv_chn);
功能:
关闭制定通道的子码流接收。
参数说明:
Handle:
句柄
rcv_chn:
接收的通道号
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
4.1.9音频通道码流接收
函数原型:
int__stdcallNETDVR_openAudioReciever(intHandle,unsignedcharrcv_chn,
pFrameCallBackpCBFun,unsignedintdwContent);
功能:
打开音频通道码流接收。
参数说明:
Handle:
预览句柄
rcv_chn:
通道号
pCBFun:
原始码流接收回调函数
dwContent:
用户回调函数上下文
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
4.1.10请求主机端开始发送音频流
函数原型:
int__stdcallNETDVR_startAudioSend(intHandle,
conststructNETDVR_mediaRcvParam_t*p_rcv_para);
功能:
请求主机端开始发送音频流。
参数说明:
Handle:
预览句柄
p_rcv_para:
码流接收设置信息
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
4.1.11关闭音频通道码流接收
函数原型:
int__stdcallNETDVR_closeAudioReciever(intHandle,unsignedcharrcv_chn);
功能:
关闭音频通道码流接收。
参数说明:
Handle:
预览句柄
rcv_chn:
接收通道号
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
4.1.12请求主机端停止发送音频流
函数原型:
int__stdcallNETDVR_stopAudioSend(intHandle,unsignedcharrcv_chn);
功能:
请求主机端停止发送音频流。
参数说明:
Handle:
预览句柄
rcv_chn:
通道号
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
4.1.13设置音频静音
函数原型:
int__stdcallNETDVR_mutePreViewAudio(intHandle,unsignedcharrcv_chn,
boolbMute);
功能:
控制预览音频是否静音,不影响预览音频码流的接收。
参数说明:
Handle:
预览句柄
rcv_chn:
预览音频的通道
bMute:
0-静音1-非静音
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
4.1.14抓图功能
函数原型:
int__stdcallNETDVR_Subsnapshot(intHandle,intchn,char*path,char*filename);
功能:
抓图(子码流)。
参数说明:
Handle:
预览句柄
chn:
通道号
*path:
存放图片的路径。
如果为空,则存于默认路径
*filename:
抓取的图片名。
支持”.bmp”和”.jpg”后缀的文件名。
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
4.1.15设置录像文件名回调
函数原型:
int__stdcallNETDVR_setSubRecordFileNameCB(intHandle,unsignedcharchn,
pRecFilenameCallBackpRecFilenameCBFunc,unsignedintdwContent);
功能:
当录像产生新文件时,通过回调可以自定义命名规则。
参数说明:
Handle:
预览句柄
chn:
通道号
pRecFilenameCBFunc:
录像文件名回调函数
dwContent:
用户回调函数上下文
返回值:
返回0表示成功,其它值为失败,具体含义见错误值表。
4.1.16开始录制子码流码流
函数原型:
int__stdcallNETDVR_startSubRecord(intHandle,unsignedcharchn,