iVMS-8800 平台 SDK 说明
目录
1
2
2.2
2.3
2.4
2.6
2.5
iVMS-8800 平台 SDK 简介 ..................................................................................................... 3
iVMS-8800 平台接口详细说明 ............................................................................................... 4
初始化和资源释放 ..................................................................................................... 4
2.1
2.1.1 初始化资源 ...................................................................................................... 4
2.1.2 释放资源 .......................................................................................................... 4
用户登录、退出 ......................................................................................................... 4
2.2.1 用户登录 .......................................................................................................... 4
2.2.2 退出登录 .......................................................................................................... 4
获取错误信息 ............................................................................................................. 5
数据集查询、遍历(设备列表、录像文件等) ..................................................... 5
2.4.1 设备查询 .......................................................................................................... 5
2.4.2 获取权限接口 .................................................................................................. 5
2.4.3 录像文件查询 .................................................................................................. 6
2.4.4 游标向后移动 .................................................................................................. 6
2.4.5 获取查询信息字符串属性 .............................................................................. 6
2.4.6 获取查询信息整形属性 .................................................................................. 7
浏览实时视频 ............................................................................................................. 7
2.5.1 查询实时流 URL ............................................................................................. 7
2.5.2 播放实时视频 .................................................................................................. 7
2.5.3 停止实时视频 .................................................................................................. 8
云镜控制 ..................................................................................................................... 9
2.6.1 云镜控制 .......................................................................................................... 9
视频参数获取、设置 ................................................................................................. 9
2.7.1 视频参数获取 .................................................................................................. 9
打开、关闭视频声音 ............................................................................................... 10
2.8.1 打开视频声音 ................................................................................................ 10
2.8.2 关闭视频声音 ................................................................................................ 10
获取预览、回放控件取流 XML ............................................................................. 11
2.9.1 查询预览控件取流 xml ................................................................................. 11
2.9.2 查询预览控件取流 xml ................................................................................. 11
2.9.3 查询回放控件取流的 xml ............................................................................. 11
2.9.4 查询回放控件取流的 xml ............................................................................. 12
2.10 录像回放、下载 ....................................................................................................... 12
2.10.1 播放控制 ........................................................................................................ 12
2.10.2 开始文件下载 ................................................................................................ 13
2.10.3 停止文件下载 ................................................................................................ 13
2.10.4 获取文件回放、下载百分比 ........................................................................ 14
2.11 开启、停止手动录像 ............................................................................................... 14
2.12 本地抓图、录像 ....................................................................................................... 14
2.12.1 视频抓图 ........................................................................................................ 14
2.12.2 开始本地录像 ................................................................................................ 15
2.12.3 停止本地录像 ................................................................................................ 15
2.7
2.8
2.9
2.13 对讲 ........................................................................................................................... 15
2.13.1 开始对讲 ........................................................................................................ 15
2.13.2 停止对讲 ........................................................................................................ 15
2.14 报警控制 ................................................................................................................... 16
2.14.1 报警输出控制 ................................................................................................ 16
2.14.2 获取报警输出当前状态 ................................................................................ 16
2.14.3 订阅报警 ........................................................................................................ 16
2.14.4 取消订阅报警 ................................................................................................ 17
2.15 环境量实时数据 ....................................................................................................... 17
2.15.1 订阅实时数据 ................................................................................................ 17
2.15.2 取消订阅实时数据 ........................................................................................ 18
iVMS-8800 平台数据定义 ..................................................................................................... 19
属性定义 ................................................................................................................... 19
3.1
云台控制参数说明 ................................................................................................... 21
错误码定义 ............................................................................................................... 21
权限说明 ................................................................................................................... 22
结构体定义 ............................................................................................................... 22
3.5.1 资源类型 ........................................................................................................ 22
3.5.2 回放命令定义 ................................................................................................ 23
3.5.3 巡航结构体定义 ............................................................................................ 23
iVMS-8800 平台编程引导 ..................................................................................................... 24
登录退出流程 ........................................................................................................... 24
4.1
资源查询流程 ........................................................................................................... 24
实时预览流程 ........................................................................................................... 26
回放下载流程 ........................................................................................................... 27
3.5
4.2
4.3
4.4
3.2
3.3
3.4
3
4
1 iVMS-8800 平台 SDK 简介
iVMS-8800 平台 SDK 与 iVMS-8800 平台配套使用,其功能主要是调用者从 iVMS-8800
平台获取数据资源,然后利用 SDK 提供的外部接口,以一定的调用流程实现实时监控、录
像回放下载、云镜控制以及获取环境量数据和报警数据等诸多功能。同时,本 SDK 可以辅
助 iVMS-8800 平台的预览和回放控件使用,即第三方平台集成预览和回放控件时,通过本
SDK 从平台中获取某监控点的预览或回放 XML 数据,然后将 XML 数据写入预览和回放控件
对应的接口,实现实时预览和录像回放的功能,这种方式尤其适合于 web 开发环境。第三
方开发人员使用 iVMS-8800SDK 前请务必仔细阅读本文档,本文档不仅提供了接口以及数据
的详细说明,还提供了调用流程和示例代码,将为您的开发提供极大的方便。
2 iVMS-8800 平台接口详细说明
2.1 初始化和资源释放
Plat_Init
2.1.1 初始化资源
1.1
函数名称
功能描述
参数说明
返回值
备注
int Plat_Init()
初始化平台接口
无
成功返回 0,错误时返回-1
初始化接口只需调用一次,在调用任何接口前,必须调用 Plat_Init 完
成初始化工作。
2.1.2 释放资源
1.2
Plat_Free
函数名称
功能描述
参数说明
返回值
备注
int Plat_Free()
资源释放接口,关闭所有的连接
无
成功时返回 0 错误时返回-1
释放资源,全局只调用一次。
2.2 用户登录、退出
2.2.1 用户登录
1.3
函数名称
功能描述
参数说明
返回值
备注
int Plat_LoginCMS(const char * csCmsIp,
const int iCmsPort,
const char * csUserName,
const char * csPSW)
登录到指定平台
cscmsIp
ncmsPort
iVMS-8800 中心管理服务器地址(如 “172.7.150.2”)
iVMS-8800 中心管理服务器端口(默认 80)
用户密码
csUserName 用户名
csPSW
>0 成功,返回一个全局的会话句柄,错误时返回-1
1.该接口只需调用一次,在调用完 Plat_Init()后调用该接口完成用户登
录 iVMS-8800 平台工作;
2.如果平台 SDK 与 iVMS-8800 平台运行在同一 IP 地址的计算机,cscmsIp
请勿为 127.0.0.1
2.2.2 退出登录
1.4
Plat_LogoutCMS
函数名称
功能描述
参数说明
返回值
备注
int Plat_LogoutCMS (int iUserhandle)
退出登录
iUserhandle
成功时返回 0 错误时返回-1
该接口只需调用一次,在 Plat_Free 调用前调用该接口完成用户登出
iVMS-8800 平台工作
Plat_LoginCMS 返回的句柄
2.3 获取错误信息
Plat_GetLastError
1.5
函数名称
功能描述
参数说明
返回值
备注
int Plat_GetLastError()
获取错误信息
无
成功时返回 0 错误时返回错误码
错误码定义见附表
2.4 数据集查询、遍历(设备列表、录像文件等)
2.4.1 设备查询
1.6
函数名称
Plat_ QueryResource
int Plat_QueryResource(int iResourceType,
int iUserHandle)
功能描述
参数说明
查询用户有权限的所有指定类型的设备信息
iResourceType 设备类型
0x00, 中心
0x01, 区域
0x02, 设备
0x03, 摄像头
0x04, 报警输入
0x05 , 报警输出
0x06 , 录像文件
0x07, 环境量
Plat_LoginCMS 返回的句柄
iUserHandle
成功时返回 0 错误时返回-1
查询成功后使用 MoveNext(), GetValueStr(), GetValueInt()逐条获取
设备信息
返回值
备注
2.4.2 获取权限接口
1.7
函数名称
Plat_ QueryPrivilege
int Plat_QueryPrivilege(const char * csResourceID,
const char * csPrivilegeCode,
int iUserHandle)
功能描述
参数说明
返回值
备注
查询用户对指定设备的权限
csResourceID
设备 ID
csPrivilegeCode 权限代码
iUserHandle
有权限返回 1 无权限返回 0
权限代码的定义见附表
Plat_LoginCMS 返回的句柄
2.4.3 录像文件查询
1.8
函数名称
Plat_QueryRecordFile
int Plat_QueryRecordFile(const char*
csCameraID,
const long lStartTime,
const long lEndtime,
const char* csRecordType,
const char*
csQueryCondition
iUserHandle)
int
功能描述
参数说明
返回值
备注
查询指定监控点某一时间段内的录像文件信息
csCameraID
lStartTime
lEndtime
csRecordType
监控点 ID
查询录像的开始时间(标准时间换算为秒的数值)
查询录像的结束时间(标准时间换算为秒的数值)
录像类型 1 计划录像, 2 移动侦测, 4 手动录像, 16
报警录像
csQueryCondition 查询条件
iUserHandle
0 为 IPSAN, 1 为设备, 2 为 PCNVR, 3 为 ENVR
Plat_LoginCMS 返回的句柄
成功时返回 0 错误时返回-1
查询成功后使用 MoveNext(), GetValueStr(), GetValueInt()逐条获取
录像信息(录像片段的 开始时间 结束时间 录像URL)
2.4.4 游标向后移动
1.9
Plat_MoveNext
函数名称
功能描述
参数说明
返回值
备注
int Plat_MoveNext(int iUserHandle)
向后移动数据访问游标
iUserHandle
Plat_LoginCMS 返回的句柄
返回 0 数据未读取完, 返回-1 数据读取完成
2.4.5 获取查询信息字符串属性
1.10
函数名称
Plat_GetValueStr
const char* Plat_GetValueStr(const char* propertyName,
功能描述
参数说明
获取查询信息的字符串属性
propertyName 属性名称
iUserHandle
Plat_LoginCMS 返回的句柄
int iUserHandle)
返回值
备注
字符串属性值,如果没有返回空字符串
2.4.6 获取查询信息整形属性
1.11
函数名称
Plat_GetValueInt
int Plat_GetValueInt(const char* propertyName,
int iUserHandle)
获取查询信息的整形属性
propertyName 属性名称
Plat_LoginCMS 返回的句柄
iUserHandle
整形类型属性,获取属性失败返回 INT_MIN
功能描述
参数说明
返回值
备注
2.5 浏览实时视频
2.5.1 查询实时流 URL
1.12
函数名称
Plat_ QueryRealStreamURL
const char * Plat_QueryRealStreamURL(int iUserHandle,
const char* csCameraID,
int nStreamType)
功能描述
参数说明
返回值
备注
Plat_LoginCMS 返回的句柄
监控点 ID
查询实时流视频的 URL
iUserHandle
csCameraID
nStreamType 码流类型: 0 主码流,1 子码流,3 根据平台实际配置
成功时返回 URL 字符串 错误时返回空字符串
2.5.2 播放实时视频
1.13
Plat_ PlayVideo
函数名称
功能描述
参数说明
int Plat_PlayVideo(const char* URL,
long hWnd,
int iUserHandle,
void(__stdcall*fStreamCallback)
(int handle,const char* data,int
size,void *pUser),
void *pUser)
打开播放视频,同时针对预览和回放
URL
预览或回放的播放路径,由
Plat_QueryRealStreamURL 或
Plat_QueryRecordFile 获得
播放窗口句柄,如果为空,则不播放
hWnd
iUserHandle
fStreamCallback
Plat_LoginCMS 返回的句柄
视频码流接收回调函数指针,如果回调函数为 NULL
则不给码流
回调函数参数:
handle Plat_PlayVideo 返回的句柄
data 接收视频码流数据缓冲区指针
size 接收视频码流数据字节数
pUser 用户数据
用户数据
pUser
>=0 成功,返回实时视频句柄,错误时返回-1
fStreamCallback用于调用者额外处理流数据
返回值
备注
1.14
Plat_ PlayRecordVideo
函数名称
int Plat_ PlayRecordVideo (const char* URL,
long hWnd,
int iUserHandle,
const long lStartTime,
const long lEndTime,
void(__stdcall *fStreamCallback)
(int handle,const char* data,int
size,void *pUser),
void *pUser)
功能描述
参数说明
返回值
备注
播放视频,只针对回放
URL
hWnd
iUserHandle
lStartTime
lEndTime
fStreamCallback
回放的播放路径,由 Plat_QueryRecordFile 获得
播放窗口句柄,如果为空,则不播放
Plat_LoginCMS 返回的句柄
录像播放的开始时间
录像播放的结束时间
视频码流接收回调函数指针,如果回调函数为 NULL
则不给码流
回调函数参数:
handle Plat_ PlayRecordVideo 返回的句柄
data 接收视频码流数据缓冲区指针
size 接收视频码流数据字节数
pUser 用户数据
用户数据
pUser
>=0 成功,返回实时视频句柄,错误时返回-1
fStreamCallback回调函数用于调用者额外处理流数据
2.5.3 停止实时视频
1.15
函数名称
功能描述
Plat_ StopVideo
int Plat_StopVideo(int hStream)
停止视频播放