海康视频监控平台单路回放组件使用说明书IPlayBackCtrlWord下载.docx
《海康视频监控平台单路回放组件使用说明书IPlayBackCtrlWord下载.docx》由会员分享,可在线阅读,更多相关《海康视频监控平台单路回放组件使用说明书IPlayBackCtrlWord下载.docx(45页珍藏版)》请在冰点文库上搜索。
![海康视频监控平台单路回放组件使用说明书IPlayBackCtrlWord下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/9ef17854-ca65-4ebf-8af3-dd3c1eb31ef4/9ef17854-ca65-4ebf-8af3-dd3c1eb31ef41.gif)
1.2.2软件环境
操作系统:
WindowsXP/Windows7/Windows8(可支持WindowsServer2003/2008)
操作系统位数:
32位/64位
显卡驱动:
支持Overlay模式,支持硬件BLT
IE版本:
IE6/IE8/IE9/IE10/IE11
1.3使用场景
视频监控客户端需要用到单路回放播放窗口的应用场景。
1.4技术制约及局限
1.部分接口内部使用线程任务队列异步调用,存在一定延时。
2.组件为Windows32位版本。
1.5参考资料
无
2.接口定义
2.1接口说明
2.1.1导出接口
2.1.1.1初始化
接口名称
SPB_CTRL_Init
接口描述
初始化
接口原型
PB_RET_TYPESPB_CTRL_Init(void);
输入
void
返回值
PB_RET_TYPE:
0成功,其他失败
备注
示例
2.1.1.2反初始化
SPB_CTRL_Uninit
反初始化
PB_RET_TYPESPB_CTRL_Uninit(void);
2.1.1.3创建单路回放对象
SPB_CTRL_Create
创建单路回放对象
ISinglePlaybackControl*SPB_CTRL_Create(
HWNDhParent,
BOOLbHasClose=TRUE,
BOOLbHasPbTool=FALSE);
hParent:
父窗口句柄
bHasClose:
小窗口是否有关闭按钮
bHasPbTool:
是否有回放工具栏
ISinglePlaybackControl*:
成功返回对象的指针,失败返回NULL
2.1.1.4销毁单路回放对象
SPB_CTRL_Destroy
销毁单路回放对象
PB_RET_TYPESPB_CTRL_Destroy(ISinglePlaybackControl*&
pObject);
pObject:
对象的指针的引用
2.1.2基本业务
2.1.2.1设置基本参数
SetBasicInfo
设置基本参数
PB_RET_TYPESetBasicInfo(
constSPB_BASIC_INFO&
stBasicInfo,
boolbReset=true,
boolbClearRcd=true)
stBasicInfo:
基本参数
bReset:
是否重置(已废弃)
bClearRcd:
是否清空录像
最先调用的接口之一,每次StopPlay之后都必须重新设置一遍。
SPB_BASIC_INFO_basic;
_basic.stCuInfo.cuZoneId=1;
_basic.stCuInfo.vmsIp="
10.18.33.103"
;
_basic.stCuInfo.vmsPort=80;
_basic.stCamera.camName="
测试监控点"
_basic.stCamera.camIdx="
10000000001310000012"
_basic.stCamera.rcdSvrType=PB_RCD_SERVER_TYPE_VRM;
_basic.stCamera.rcdSvrIP="
_basic.stCamera.rcdSvrPort=6300;
std:
:
stringstreamss;
ss<
<
playback:
PB_OPCODE_VOICE<
"
"
PB_OPCODE_ONE_SNAP<
PB_OPCODE_MULTI_SNAP<
PB_OPCODE_SAVE_CLIP<
_basic.rightCode=ss.str();
m_pImpl->
SetBasicInfo(_basic);
2.1.2.2获取基本参数
GetBasicInfo
获取基本参数
PB_RET_TYPEGetBasicInfo(SPB_BASIC_INFO&
stBasicInfo)
SPB_BASIC_INFO&
stBasicInfo:
2.1.2.3查询录像
SearchRecord
查询录像
PB_RET_TYPESearchRecord(
constSPB_RCD_SEARCH_PARAM&
stParam,
boolbClean=true)
stParam:
查询录像的参数
1.支持向VMS获取VMR地址,再进行录像查询。
2.支持直接向VRM查询。
3.支持NCG级联录像查询。
4.支持KMS录像查询。
SPB_RCD_SEARCH_PARAM_param;
_param.tBegin=TimeStringToNumber("
2015-01-13T00:
00:
00.000Z"
);
_param.tEnd=TimeStringToNumber("
2015-01-13T23:
59:
59.000Z"
_param.rcdType=RT_ALL;
_param.pRcdFun=CB_SearchResult;
_param.pRcdUser=this;
SearchRecord(_param);
2.1.2.4设置录像信息
SetRecordInfo
设置录像信息
PB_RET_TYPESetRecordInfo(
constRECORD_SEARCH_RESULT_MAP&
records,
boolbClean=false)
records:
录像信息
boolbClean:
清空原有录像
实际是追加录像片段,如果片段的起始时间一样,则会被覆盖。
2.1.2.5获取录像信息
GetRecordInfo
获取录像信息
PB_RET_TYPEGetRecordInfo(RECORD_SEARCH_RESULT_MAP&
records)
获取的是内部所有的录像片段信息
2.1.2.6开始回放
StartPlay
开始回放
PB_RET_TYPEStartPlay(
time_ttPlay=playback:
INVALID_TIME_VALUE,
time_ttEnd=playback:
INVALID_TIME_VALUE)
tPlay:
可指定开始播放的时间,不指定则使用SetRecordInfo中得到的最早时间
内部必须要有录像片段才能回放,支持:
1.调用SetRecordInfo接口设置录像信息,直接播放。
2.外部SearchRecord接口查询录像,等到查询回调返回后,才可以播放。
2.1.2.7停止回放
StopPlay
停止回放
PB_RET_TYPEStopPlay(BOOLbClearRcd=FALSE)
是否清空录像片段
内部状态会被重置,下次播放必须要重新SetBasicInfo。
2.1.2.8挂起播放
PendingPlay
挂起播放
PB_RET_TYPEPendingPlay(void)
仅停止播放,但不重置内部状态,可以直接重新播放。
2.1.2.9筛选录像类型
FilterPlayType
对录像类型进行筛选
PB_RET_TYPEFilterPlayType(unsignedintrecType)
recType:
筛选后允许播放的录像类型
播放过程中不匹配的录像片段类型直接跳过。
2.1.3参数设置
2.1.3.1设置窗口序号
SetIndex
设置窗口序号
PB_RET_TYPESetIndex(WND_INDEXwndIndex)
wndIndex:
窗口序号
序号从0开始,默认为-1。
2.1.3.2获取窗口序号
GetWndIndex
获取窗口序号
WND_INDEXGetWndIndex(void)const
WND_INDEX:
2.1.3.3配置常用参数
Configurate
配置常用参数
PB_RET_TYPEConfigurate(constPB_CONFIGURATION&
cfg)
cfg:
常用参数
如果不配置使用默认的,则有的可能为非法值,导致操作失效。
PB_CONFIGURATIONcfg;
cfg.toolbarShowMode=TBSM_ALWAYS_SHOW;
cfg.statusbarShowMode=TBSM_AUTO;
cfg.toolbarBtns.push_back(BTN_ID_INFO);
cfg.toolbarBtns.push_back(BTN_ID_SOUND);
cfg.toolbarBtns.push_back(BTN_ID_VOLUMN);
cfg.toolbarBtns.push_back(BTN_ID_SNAP_ONE);
cfg.toolbarBtns.push_back(BTN_ID_SNAP_MULTI);
cfg.toolbarBtns.push_back(BTN_ID_SAVE_CLIP);
cfg.toolbarBtns.push_back(BTN_ID_ZOOM);
cfg.clipCfg.packSize=512;
Configurate(cfg);
2.1.3.4设置性能参数
SetPerformance
设置性能参数
voidSetPerformance(constPB_PERFORMACE_PARAM&
stPerform)
stPerform:
播放性能参数
下次播放时生效
2.1.3.5设置磁盘状态
SetDiskState
设置磁盘状态
PB_RET_TYPESetDiskState(intnOperation,intnDiskState)
nOperation:
磁盘空间对应操作的位置(见PLAYBACK_DISK_OPERATION)
nDiskState:
磁盘空间的状态(见DISK_FREE_SPACE_STATE)
2.1.4播放控制
2.1.4.1获取播放端口
GetPlayPort
获取播放端口
intGetPlayPort(void)const
int:
播放端口
并不是播放库的播放端口,而是vag_playctrl的句柄。
2.1.4.2暂停/恢复播放
Pause
暂停/恢复播放
PB_RET_TYPEPause(BOOLbPause=TRUE)
bPause:
是否暂停
2.1.4.3单帧前进
ForwardOneFrame
单帧前进
PB_RET_TYPEForwardOneFrame(void)
2.1.4.4单帧后退
BackwardOneFrame
单帧后退
PB_RET_TYPEBackwardOneFrame(void)
仅海康播放库支持,切换到文件播放模式,在播放缓冲中单帧后退,到了文件头则无法再操作。
2.1.4.5打开/关闭声音
OpenSound
打开/关闭声音
PB_RET_TYPEOpenSound(BOOLbOpen=TRUE)
bOpen:
是否打开声音
在1倍速播放时才可以操作声音。
2.1.4.6设置音量大小
SetSoundVolumn
设置音量大小
PB_RET_TYPESetSoundVolumn(intnVolumn)
nVolumn:
音量大小,0~1000
2.1.4.7获取音量大小
GetSoundVolumn
获取音量大小
intGetSoundVolumn(void)
2.1.4.8切换到倒放/正放
Reverse
切换到倒放/正放
PB_RET_TYPEReverse(BOOLbBackward=TRUE)
bBackward:
是否倒放
2.1.4.9自适应/拉伸显示
Adaptive
自适应/拉伸显示
PB_RET_TYPEAdaptive(BOOLbAdaptive=TRUE)
bAdaptive:
是否自适应显示
2.1.4.10设置回放速度
SetSpeed
设置回放速度
PB_RET_TYPESetSpeed(intnSpeed)
nSpeed:
回放速度
回放速度,取值范围参见PB_STREAM_SPEED。
2.1.4.11定位到指定时间点
SeekToTime
定位到指定时间点
PB_RET_TYPESeekToTime(time_ttSeek)
tSeek:
定位时间点
2.1.4.12抓图
SnapShot
抓图
PB_RET_TYPESnapShot(longlId,BOOLbContinous)
lId:
操作ID,一次操作需要有一个ID,用于在回调中反馈
bContinous:
TRUE表示连续抓图,FALSE表示单张抓图
通过抓图回调返回。
2.1.4.13进入/退出电子放大
DigitalZoom
进入/退出电子放大
PB_RET_TYPEDigitalZoom(void)
只能在UI线程中调用。
2.1.5注册回调
2.1.5.1注册状态通知回调
RegStateChgCB
注册状态通知回调
PB_RET_TYPERegStateChgCB(PB_STATECHG_CBpfun,void*pUser)
pfun:
回调函数
pUser:
用户数据
2.1.5.2注册操作回调
RegActionCB
注册操作回调
voidRegActionCB(PB_ACTION_CBpFun,void*pUser)
pFun:
主要用于记录操作日志
2.1.5.3注册播放窗口画图回调
RegPlayWndDrawCB
注册播放窗口画图回调
voidRegPlayWndDrawCB(PB_PLAYWND_DRAW_CBpFun,void*pUser)
2.1.5.4注册窗口消息回调
RegWindowMsg
注册窗口消息回调
PB_RET_TYPERegWindowMsg(PB_WNDMSG_CBpfun,longlUser)
2.1.5.5注册窗口消息回调
RegWindowMsgEx
PB_RET_TYPERegWindowMsgEx(PB_WNDMSG_CB_EXpfun,longlUser)
回调函数带有窗口序号。
2.1.6获取状态
2.1.6.1获取播放时间
GetPlayerTime
获取播放时间
time_tGetPlayerTime(void)
time_t:
播放时间,无效时为-1
并不总是有效,原因如下:
1、此接口不是直接向播放库获取时间,而是通过塞数据线程更新播放时间。
2、有些码流获取的播放时间无效,例如大华设备码流、ehome设备码流。
2.1.6.2获取播放速度
GetPlaySpeed
获取播放速度
intGetPlaySpeed(void)
播放速度值,参见PLAYBACK_SPEED
2.1.6.3是否处于空闲状态
IsIdle
播放窗口是否处于空闲状态
BOOLIsIdle(void)const
BOOL:
TRUE是,FALSE否
StopPlay之后会处于空闲状态
2.1.6.4是否处于挂起状态
IsPending
是否处于挂起状态
BOOLIsPending(void)const
PendingPlay之后会处于挂起状态
2.1.6.5是否有录像信息
HasRecords
是否有录像信息
BOOLHasRecords(void)
TRUE有,FALSE没有
2.1.6.6指定时间范围内是否有录像信息
指定时间范围内是否有录像信息
BOOLHasRecords(time_ttSta,time_ttEnd)
tSta:
起始时