当前位置:首页 >> 信息与通信 >>

先进视讯 iDVR3.0 3.5 SDK 开发手册(1)


先进视讯 iDVR SDK
(3.0 & 3.5 )

2009 年 3 月

先进视讯 iDVR SDK 开发手册

目录
1 2 登录...........................................................................................................................................3 获取镜头和解码器列表 ...........................................................................................................3 2.1 获取所有设备信息 .......................................................................................................3 2.2 获取镜头分组信息 .......................................................................................................6 图像播放...................................................................................................................................7 3.1 播放视频.......................................................................................................................7 3.2 停止播放视频 ...............................................................................................................8 3.3 播放音频.......................................................................................................................8 3.4 停止播放音频 ...............................................................................................................9 3.5 本地录像与抓图 ...........................................................................................................9 3.6 画面分割.......................................................................................................................9 3.7 打开与关闭麦克风 .....................................................................................................10 PTZ控制 .................................................................................................................................10 4.1 请求控制.....................................................................................................................10 4.2 放弃控制.....................................................................................................................10 4.3 操作控制.....................................................................................................................11 矩阵控制.................................................................................................................................11 5.1 矩阵信息读取 .............................................................................................................11 5.2 矩阵切换.....................................................................................................................11 5.3 矩阵操作.....................................................................................................................12 编码器与解码器的连接 .........................................................................................................13 6.1 连接单个编码器和单个解码器 .................................................................................13 6.2 断开解码器 .................................................................................................................13 录像回放.................................................................................................................................14 7.1 录像查询.....................................................................................................................14 7.2 录像播放与下载 .........................................................................................................14 7.3 本地录像与抓图 .........................................................................................................15 转发映射.................................................................................................................................15 8.1 图像播放.....................................................................................................................16 8.2 录像回放与下载 .........................................................................................................16 附录.........................................................................................................................................17 9.1 advProxy.dll 接口说明 ..............................................................................................17 9.2 advShowlive.dll 接口说明 .........................................................................................22 9.3 ArchiveClientCtrl.dll回放控件接口说明 ...................................................................24 9.3.1 属性 .................................................................................................................24 9.3.2 方法 .................................................................................................................24 9.3.3 事件 .................................................................................................................25

3

4

5

6

7

8

9

版权所有(C)北京先进视讯科技有限公司

2

先进视讯 iDVR SDK 开发手册

1 登录
连接并登录目录服务器 1. 请求 loginXML.asp,获取目录服务器的 IP 地址、端口号及会话 GUID 2. 调用 advProxy.Connect(),使用目录服务器的 IP 地址、端口号连接 目录服务 3. 调用 advProxy.Login(),使用会话 GUID 登录目录服务 请求 LoginXML.asp <Message> <username>admin</username> —用户名 <userpasswd> —用户口令,采用 MD5 加密 E10ADC3949BA59ABBE56E057F20F883E </userpasswd> <nettype>1</nettype> —网络类型(0:局域网 1:广域网) </Message> loginXML.asp 的响应 <?xml version="1.0" encoding="gb2312" ?> <LoginResult> <r>1</r> 登录结果:1—成功、其它—失败 <sessionid> 会话 GUID {5D34AE42-7990-4F6A-80F1-A91833833496} </sessionid> <userp>0</userp> 用户权限 <dir_ip>192.168.1.242</dir_ip> 目录服务的 IP 地址 <dir_port>5532</dir_port> 目录服务的端口号 <db_name>.</db_name> <dir_guid></dir_guid> <overdueTime>0</overdueTime> </LoginResult>

2 获取镜头和解码器列表
2.1 获取所有设备信息
请求 TreeEnc.asp Treeenc.asp?choice = Unit & Guid = all 全部设备 Treeenc.asp?choice = Unit & Guid = {00000000-0000-0000-00e2c6c003dc}单体设备

版权所有(C)北京先进视讯科技有限公司

3

先进视讯 iDVR SDK 开发手册

Treeenc.asp?choice = Enc & Guid = all 全部镜头 Treeenc.asp?choice = Enc & Guid = {00000000-0000-0000-00e2c6c003dc}单体镜头 Treeenc.asp?choice = Dec & Guid = all 全部解码器 Treeenc.asp?choice = Dec & Guid = {00000000-0000-0000-00e2c6c003dc}单体解码 器 TreeEnc.asp 的响应 1.全部编码器 <?xml version="1.0" encoding="gb2312" ?> <Encs> <Enc Ip="192.168.1.137" UnitGuid="{00000000-0000-0000-0000-00E2C6C03D15}" EncGuid="{00000001-0000-0000-0000-00E2C6C03D15}" SiteGuid="{4CF01CAD-70C1-4065-9EE8-EBD3DB62888F}" UnitType="3" State="0" UnitName="工作大厅" EncName="Enc1" MicGuid="{00000002-0000-0000-0000-00E2C6C03D15}" SpeakGuid="{00000003-0000-0000-0000-00E2C6C03D15}" SerialGuid="" ProtocalAddress="" ProtocalID="" MetrixID="" /> <Enc Ip="192.168.1.156" UnitGuid="{00000000-0000-0000-0000-001991FF039B}" EncGuid="{00000001-0000-0000-0000-001991FF039B}" SiteGuid="{4CF01CAD-70C1-4065-9EE8-EBD3DB62888F}" UnitType="65806" State="1" UnitName="AV6600" EncName="Enc1" MicGuid="{00000003-0000-0000-0000-001991FF039B}" SpeakGuid="{00000004-0000-0000-0000-001991FF039B}" SerialGuid="{00000009-0000-0000-0000-001991FF039B}" ProtocalAddress="0" ProtocalID="1" MetrixID="{00000009-0000-0000-0000-001991FF039B}" /> </Encs> 上面的 XML 中,每个<Enc>节点表示一个视频编码器,<Enc>节点中各个属性的含义 如下表所示:

版权所有(C)北京先进视讯科技有限公司

4

先进视讯 iDVR SDK 开发手册

属性 Ip UnitGuid EncGuid SiteGuid UnitType State UnitName EncName MicGuid SpeakGuid SerialGuid ProtocalAddress ProtocalID MetrixID 设备的 IP 地址 设备 GUID 镜头 GUID 网关 GUID 设备类型

说明

设备状态,1 表示在线,0 表示不在线 设备名称 镜头名称 麦克风 GUID 喇叭 GUID 串口 GUID 云台协议地址 云台协议类型 矩阵 ID 表1

2. 全部解码器 <?xml version=”1.0” encoding=”gb2312” ?> <Decs> <Dec Ip=”192.168.1.152” UnitGuid=”{00000000-0000-0000-0000-00199100002F}” DecGuid=”{00000001-0000-0000-0000-00199100002F}” SiteGuid=”{4CF01CAD-70C1-4065-9EE8-EBD3DB62888F}” UnitType=”4” State=”1” UnitName=”Decoder” EncName=”Dec1” MicGuid=”{00000002-0000-0000-0000-00199100002F}” SpeakGuid=”{00000003-0000-0000-0000-00199100002F}” SerialGuid=”” ProtocalAddress=”” ProtocalID=”” /> </Decs>

上面的 XML 中, 每个<Dec>节点表示一个视频解码器, <Dec>节点中各个属性的含义如下 表所示:

版权所有(C)北京先进视讯科技有限公司

5

先进视讯 iDVR SDK 开发手册

属性 Ip UnitGuid DecGuid SiteGuid UnitType State UnitName EncName MicGuid SpeakGuid SerialGuid ProtocalAddress ProtocalID 设备的 IP 地址 设备 GUID 解码器 GUID 网关 GUID 设备类型

说明

设备状态,1 表示在线,0 表示不在线 设备名称 解码器名称 麦克风 GUID 喇叭 GUID 串口 GUID 云台协议地址 云台协议类型 表2

2.2 获取镜头分组信息
获取所有根节点的信息 请求 xtree/tree11_Units.asp xtree/tree11_Units.asp 获取指定父节点下的子节点信息 请求 xtree/tree11_Unitx.asp xtree/tree11_Unitx.asp?DeviceGroupID=1 请求上述页面返回 xml 数据格式如下: <?xml version="1.0" encoding="gb2312" ?> <TreeNode id="1" text="镜头分组" title="镜头分组" target="_self" href="Javascript:void(0);" Xml="xtree/tree11_Unitx.asp?DeviceGroupID=1" ----请求该页面获取子节点信息 state="0"> <imagePic>images/drafts.gif</imagePic> </TreeNode> <TreeNode id="{00000001-0000-0000-0000-1E000A000000}" text="模拟设备(10) Enc1"
版权所有(C)北京先进视讯科技有限公司 6

先进视讯 iDVR SDK 开发手册

title="模拟设备(10) Enc1 IP:192.168.1.95" target="_self" href="javascript:vstart('{00000001-0000-0000-0000-1E000A000000 }','{68D00908-2EE9-4D88-B709-F12FD1DA5329}','','',' {00000002-0 000-0000-0000-1E000A000000}','',' 模拟设备(10) Enc1','{00000003-0000-0000-0000-1E000A000000}','3','','');" state="00" DVR="" /> </TreeNode> 节点state:左边第一位表示是否支持ptz控制(0:不支持 1:支持) ,第二位表 示是否在线(0:不在线 1:在线) *href节点所包含数据(以’,’为分隔符分为 0-10) 0) id(设备ID) 1) SiteGuid(站点GUID) 2) serialPortGuid(端口GUID) 3) ptzProtocolAddress(PTZ协议地址) 4) audioEncoderGuid(音频编码器GUID) 5) matrixId(矩阵ID) 6) text(设备名称) 7) audioDecoderGuid(音频解码器GUID) 8) deviceTypeId(设备类型ID) 9) userPurview(用户权限范围) 10) ptzProtocalType(PTZ协议类型)

3 图像播放
3.1 播放视频
调用下面的函数播放图像:ADVPROXYLib.DeviceUserClass.StartEncoderEx(object, object, ADVPROXYLib.ADVDeviceType, ADVPROXYLib.ENCODERTYPE, ADVPROXYLib.ADVMediaNetType, int, int)

使用方法为: 1. 首先调用 StartEncoderEx()请求播放图像,代码如下: advProxy.StartEncoderEx(SiteGuid,

EncGuid,

UnitType,

ADVPROXYLib.ENCODERTYPE.ENCODER_VIDEO, NetType, UserPara1, UserPara2); 注:1、SiteGuid 、EncGuid、UnitType 对应于表 1 中的同名属性。 2、NetType 表示登录时使用的网络类型, “局域网”为 0, “Internet”为 1。
版权所有(C)北京先进视讯科技有限公司 7

先进视讯 iDVR SDK 开发手册

3、UserPara1、 UserPara2 用来存放临时变量 2. 然后接收 ADVPROXYLib.DeviceUserClass. EventStartEncoderEx 事件,事件的 Successful 参数表示播放图像是否成功, 表示成功, 表示失败。 Successful=1 1 0 在 的情况下,执行下面的函数播放图像: AxADVSHOWLIVELib.AxAVShow. StartVideoEx1(object, object, object, object, object, object,object,object) 代码示例如下: avShow. StartVideoEx1 (mIP, mPort, DeviceType, NetType, IVSIP, IVSPort,

UserPara1, UserPara2)
注: mIP、 mPort、 DeviceType、 NetType、 IVSIP、 IVSPort

、 UserPara1、 UserPara2

参数皆来源于 AdvProxy 的 EventStartEncoderEx 事件。

3.2 停止播放视频
调用 AVShow.StopVideoEx() 方法 调用 advProxy.StopEncoder() 方法 参数:string VSIPID –网关 GUID string EncoderID –视频编码器 GUID

3.3 播放音频
调用下面的函数播放声音:ADVPROXYLib.DeviceUserClass.StartEncoderEx(object, object, ADVPROXYLib.ADVDeviceType, ADVPROXYLib.ENCODERTYPE, ADVPROXYLib.ADVMediaNetType, int, int) 使用方法为: 3. 首先调用 StartEncoderEx()请求播放声音,代码如下: advProxy.StartEncoderEx(SiteGuid,

MicGuid,

UnitType,

ADVPROXYLib.ENCODERTYPE.ENCODER_AUDIO, NetType, 0, 0); 注:1、SiteGuid 、MicGuid、UnitType 对应于表 1 中的同名属性。 2、NetType 表示登录时使用的网络类型, “局域网”为 0, “Internet”为 1。 4. 然 后 接 收 ADVPROXYLib.DeviceUserClass.EventStartEncoderEx 事 件 , 事 件 的 Successful 参数表示播放声音是否成功, 表示成功, 表示失败。 Successful=1 1 0 在 的情况下,执行下面的函数播放声音: AxADVSHOWLIVELib.AxAVShow.StartAudioEx(object, object, object, object, object, object) 代码示例如下: avShow.StartAudioEx(mIP, mPort, DeviceType, NetType, IVSIP, IVSPort) 注:mIP、mPort、DeviceType、NetType、IVSIP、IVSPort 参数皆来源于 AdvProxy
版权所有(C)北京先进视讯科技有限公司 8

先进视讯 iDVR SDK 开发手册

的 EventStartEncoderEx 事件。

3.4 停止播放音频
调用 AVShow.StopAudioEx() 方法 调用 advProxy.StopEncoder() 方法 参数:string VSIPID –网关 GUID string EncoderID –音频编码器 GUID

3.5 本地录像与抓图
1. 开始录像 AVShow.StartRecord(string filename) //filename:录像保存路径 2. 停止录像 AVShow.StopRecord() 3. 抓图 AVShow.CaptureBmp(string filename) 本地录像用 AVPlay.exe 程序播放。

3.6 画面分割
切换单格和 4 格画面,请调用下面的函数: ADVPROXYLib.DeviceUserClass.PTZAction(object,object, ADVPROXYLib.PTZProtocalType, ADVPROXYLib.PTZActionType, object, object) 切换到单格画面: PTZAction(SiteGuid,

SerialGuid,

ProtocalID,

PTZActionType.GOTOPRESET,

ProtocalAddress, 33)
切换到 4 格画面: PTZAction(SiteGuid,

SerialGuid,

ProtocalID,

PTZActionType.GOTOPRESET,

ProtocalAddress, 34)
单格画面中切换摄像头: 在单格画面中切换摄像头,使用的是切换预置位的命令。如: PTZAction(SiteGuid,

SerialGuid, SerialGuid,

ProtocalID, ProtocalID,

PTZActionType.GOTOPRESET, PTZActionType.GOTOPRESET,

ProtocalAddress, 1) ProtocalAddress, 2)

切换到第一路图像 切换到第二路图像

PTZAction(SiteGuid,

版权所有(C)北京先进视讯科技有限公司

9

先进视讯 iDVR SDK 开发手册

依此类推,可切换到其它摄像图的图像。 注:SiteGuid、SerialGuid、ProtocalID、ProtocalAddress 对应于表 1 中的同名属性。

3.7 打开与关闭麦克风
调用下面的函数打开麦克风: ADVPROXYLib.DeviceUserClass.StartSpeakEx(object, object) 示例如下: advProxy.StartSpeakEx(SpeakGuid, UnitType) 注:SpeakGuid、UnitType 对应于表 1 中的同名属性。 调用下面的函数关闭麦克风: ADVSHOWLIVELib.AVShow.StopSpeakMultiEx() ADVPROXYLib.DeviceUserClass.StopSpeakEx() 示例如下: AvShow.StopSpeakMulti() advProxy.StopSpeakEx()

4 PTZ控制
4.1 请求控制
AdvProxy.ControlReq(sguid,EncID); Sguid:session("strguid") //此值在身份验证里 EncID:需要进行控制的 镜头设备的 GUID PTZ 请 求 控 制 结 果 可 以 通 过 接 收 AdvProxy 的 EventControlResp 事 件 来 判 断 , EventControlResp 事件会返回 sessionGuid 参数,如果这个 sessionGuid 与当前的会话 Guid 不同,说明这是另一个会话的请求,否则说明请求控制成功

4.2 放弃控制
AdvProxy.UnControl(EncID,sguid); Sguid:session("strguid") //此值在身份验证里 EncID:需要进行控制的 镜头设备的 GUID

版权所有(C)北京先进视讯科技有限公司

10

先进视讯 iDVR SDK 开发手册

4.3 操作控制
球机及云台控制 AdvProxy.PTZAction(SiteGuid, SerialGuid, ProtocaID,X, ProtocalAddress,spd); X= 1(缩放缩小) 2(缩放放大) 3(缩放停止) 4(焦距拉近) 5(焦距拉远) 6(调焦停止) 7(光圈缩小) 8(光圈放大) 9(光圈停止) 10(向右转)11(向左转)12(左右转动停止) 13(向上抬)14(向下低)15(上下转动停止) 辅助设备 AdvProxy.PTZAction(SiteGuid,SerialGuid,ProtocaID,X, ProtocalAddress,PID); X=32(打开辅助设备) 25(关闭辅助设备)PID 辅助设备 ID 范围 1-8 预置位 AdvProxy.PTZAction(SiteGuid,SerialGuid,ProtocaID,X, ProtocalAddress,PID); X= 16(设置预置位) 17(指向预置位) 24(清空预置位) PID 预置位置 ID 范围 1-99 (X 为 17 时 PID=34 为 画面分割, PID=33 为 画面自动切换) 上述方法中所用参数 SiteGuid,SerialGuid,ProtocaID,ProtocalAddress 对应于表 1 中 的同名属性。 Spd: 速度 1-7

5 矩阵控制
5.1 矩阵信息读取
请求 MetrixSel_Xml.asp 参数(GET) EncID 镜头的 GUID MetrixID 所联矩阵的 GUID 以上参数从 /xtree/tree11_Units.asp 获得 用法例子: MetrixSel_Xml.asp?EncID={00000001-0000-0000-0000-00079A003E9A}&MetrixID=1 返回 XML 请自行表现界面

5.2 矩阵切换
请求 MetrixInputID.asp 参数(POST) <Message >
版权所有(C)北京先进视讯科技有限公司 11

先进视讯 iDVR SDK 开发手册

<Input >InputID </Input > <Metrix >MetrixID </Metrix > <Control > </Control > <Protocal > </Protocal > </Message > 目前只 InputID Metrix 两个参数有效 分别为 需要切换的矩阵输入口 和 Metrix 的 ID response 返回结果 XML <Message > <Input >6 </Input > <Metrix >1 </Metrix > <Control >0 </Control > <Protocal >1 </Protocal > </Message > 说明 //Message/Control = 0 是不可控 1 为可控 //Message/Protocal = 返回的矩阵协议号码 有了以上参数后 就可以执行 以下的方法控制 矩阵 ADVProxy.MetrixActionEx(SiteGuid,SerialGuid, ProtocalID,1,InputID,OutPutID,UserPin); metrixsel_xml.asp 返回结果 数据内容举例

<?xml version="1.0" encoding="GB2312" ?> <Metrixs> <Metrix> <MetrixInfo PortNum="1" Protocal="1" SerialPortGuid="{0000000C-0000-0000-0000-00079A004FC0}" OutPutID="1" UserPin="7777" MetrixID="1"/> <MetrixPort> <InputPortID ID="1">未命名 11</InputPortID> </MetrixPort> </Metrix> </Metrixs>

5.3 矩阵操作
球机及云台控制 AdvProxy.MetrixAction(SiteGuid,SerialGuid,ProtocalID,X,spd,0);
版权所有(C)北京先进视讯科技有限公司 12

先进视讯 iDVR SDK 开发手册

X=

1(缩放缩小) 2(缩放放大) 23(缩放停止) 4(焦距拉近) 5(焦距拉远) 23(调焦停止) 7(光圈缩小) 8(光圈放大) 23(光圈停止) 10(向右转)11(向左转)23(左右转动停止) 13(向上抬)14(向下低)23(上下转动停止) 辅助设备 AdvProxy.MetrixAction(SiteGuid,SerialGuid, ProtocalID,X,PID,0); X=25(打开辅助设备) 32(关闭辅助设备)PID 辅助设备 ID 范围 1-8 预置位 AdvProxy.MetrixAction(SiteGuid,SerialGuid,ProtocalID,X,PID,0); X= 16(设置预置位) 17(指向预置位) 24(清空预置位) PID 预置位置 ID 范围 1-99(X 为 17 时 PID=34 为 画面分割,PID=33 为 画面自动切换) 上述方法中所用参数 SiteGuid,SerialGuid,ProtocaID,ProtocalAddress 对应于表 1 中 的同名属性。 Spd: 速度 1-7

6 编码器与解码器的连接
6.1 连接单个编码器和单个解码器
http://xxx/adv/link/treeexec.asp?ID=11&Link1value={00000001-0000-0000-0000-00E2 C6C03785}&Link2value={00000001-0000-0000-0000-00E2C6C03789} Link1value = 编码器 GUID Link2value = 解码器 GUID

6.2 断开解码器
http://xxx/adv/link/treeexec.asp?ID=22&Link2value={00000001-0000-0000-0000-00E2 C6C03789} Link2value=解码器 GUID 其他语言 调用 建议使用 XMLHTTP 方式调用 例如: var XMLHTTP=new ActiveXObject("msxml2.XMLHTTP"); XMLHTTP.open("POST","http://xxx/adv/link/treeexec.asp?ID=22&Link2value={0000000 1-0000-0000-0000-00E2C6C03789}",false);

版权所有(C)北京先进视讯科技有限公司

13

先进视讯 iDVR SDK 开发手册

7 录像回放
录像回放的相关操作都是依靠 ArchiveClientCtrl.dll 控件来完成的。

7.1 录像查询
将下面这个 XML post 给 RecordFileXML.asp 文件 <?xml version="1.0" encoding="gb2312"?> <para> <funcnum>0</funcnum> <starttime>2006-7-22 21:53:36</starttime>要查询的开始时间 <endtime>2006-7-25 21:53:36</endtime>要查询的结束时间 <encoderguid>{00000001-0000-0000-0000-00E2C6C0197D}</encoderguid>要查询的镜 头 guid (encguid) <view>1</view> <SiteGuid /> <PlanName /> </para> RecordFileXML.asp 的响应 <?xml version="1.0" encoding="gb2312" ?> <return> <result /> <filenum>1</filenum> <PlanName /> <recordfile> <begintime>2006-7-1 23:59:37</begintime>实际录像的开始时间 <endtime>2006-7-2 0:59:37</endtime>实际录像的结束时间 <totaltime>60</totaltime> 60 分钟 <recordsiteguid>{0D9F87DF-183A-4634-95D9-40E4DAE26C5A}</recordsiteguid> 录像回放站点的 guid <encoderguid>{00000001-0000-0000-0000-00E2C6C00A28}</encoderguid> 镜 头 guid (encguid) <imagePic>img src='images/playon.gif'</imagePic> </recordfile> </return>

7.2 录像播放与下载
判断录像回放站点是否开启 将下面这个 XML post 给 RecordSiteStateXML.asp 文件
版权所有(C)北京先进视讯科技有限公司 14

先进视讯 iDVR SDK 开发手册

POST: <?xmlversion="1.0"encoding="gb2312"?> <para> <funcnum>0</funcnum> <starttime>2009-3-2710:06:00</starttime> <endtime>1</endtime> <encoderguid>{00000001-0000-0000-0000-00E2C6C03D33}</encoderguid> <view>1</view> <SiteGuid>{9D9BB7A7-13DF-4E79-BF07-BE7409A9BC7F}</SiteGuid> <PlanName /></para> RecordSiteStateXML.asp 的响应 <?xmlversion="1.0" encoding="gb2312"?> <return> <result></result> <RecordSiteState>1</RecordSiteState> 1 未开启 0 开启 <RecordSiteIp>xxxxxx</RecordSiteIp>如果开启 则返回 回放站点的 IP 地址 <RecordSitePort>xxx</RecordSitePort>如果开启则返回 回放站点的端口 </return> " 在站点开启情况下: 调用 ArchiveClientCtrl.StartPlayer()方法开始播放录像 调用 ArchiveClientCtrl.StopPlayer()方法停止播放录像 调用 ArchiveClientCtrl.StartDownload(saveFileName,out result)方法开始下载录像 saveFileName:文件下载到本地的路径 result:下载文件的结果 调用 ArchiveClientCtrl.StopDownload()方法停止下载录像

7.3 本地录像与抓图
调用 ArchiveClientCtrl.BeginRecord(object PathName, out int result)方法在录像回 放中进行本地录像。 PathName:录像文件保存到本地的路径 Result:是否保存录像成功 调用 ArchiveClientCtrl.StopRecord()方法停止本地录像 调用 ArchiveClientCtrl.CaptureBitmap(string fileName);方法在录像回放中进行抓图。 fileName:抓图保存到本地的路径

8 转发映射
单/多目录接口文件:GetXMLIVS.asp

版权所有(C)北京先进视讯科技有限公司

15

先进视讯 iDVR SDK 开发手册

POST 参数 GetXMLIVS.asp?Ver=3.0&sType=Enc&SiteGuid=siteGuid Ver 版本号 Ver = 3.0 为单目录 Ver = 3.5 为多目录 sType 有以下几种: 1. “Enc” 图像播放 2. “Rec” 录像回放与下载 sType 是系统中不同功能调用,其中有图像播放、录像回放与下载

8.1 图像播放
单目录:在打开图像时 向 GetXMLIVS.asp 文件 POST GetXMLIVS.asp?Ver=3.0&sType=Enc&SiteGuid=PlayVsip; PlayVsip 是 网关站点 GUID,事件中有返回值 多目录: 在打开图像时 用 事件返回的转发 ip 和端口(经过转换后) POST 给 GetXMLIVS.asp GetXMLIVS.asp?Ver=3.5&sType=Enc&IVSIP=sIVSIP&IVSPort=sIVSPort POST GetXMLIVS.asp 返回 <?xml version='1.0' encoding='gb2312'?> <IVS> <IVSIP> IVSIP </IVSIP> <IVSPort> IVSPort </IVSPort> </IVS> IVSIP :转发服务 IP IVSPort :转发服务端口

8.2 录像回放与下载
录像回放时 向 GetXMLIVS.asp 文件 POST GetXMLIVS.asp?Ver=3.0&sType=Rec&SiteGuid=siteGuid; siteGuid 是 录像站点 GUID; POST GetXMLIVS.asp 返回 <?xml version='1.0' encoding='gb2312'?> <IVS> <IVSIP> IVSIP </IVSIP> <IVSPort> IVSPort </IVSPort> </IVS> IVSIP :录像服务 IP IVSPort :录像服务端口

版权所有(C)北京先进视讯科技有限公司

16

先进视讯 iDVR SDK 开发手册

9 附录
9.1 advProxy.dll 接口说明
1.Connect() 连接目录服务 参数: [in] DIP(目录服务器的 IP 地址) Dport(目录服务器端口) 2.Login()用户登陆 参数:[in] Strguid(登陆用户的GUID) 3.StartEncoderEx() 打开 编码器 由 AVType 决定 打开声音 或 视频 编码器 参数:[in] SiteGuid 站点 GUID EncoderID 镜头编码器 GUID DeviceType 1600 is 1 ,1300 is 2,1320 is 3 AVType 1 video 0 audio NetType 0 局域 1 广域 UserPara1 存放临时变量 UserPara2 存放临时变量 4. EventStartEncoderEx()打开 编码器 后 产生的事件 可以在这个事件里 首先强制关键 帧,然后用 showlive 打开图像 参数:[out] EncoderGuid 镜头编码器 GUID Successful:0 打开失败,1 打开成功 mIP :组播 IP mPort :组播端口 IVSIP:转发站点 (NetType=1 时返回) IVSPort:转发端口(NetType=1 时返回) AVType:1: DeviceType:1:1600 2:1300 3:1320 4:1304 NetType:0 局域 1 广域 UserPara1 返回临时变量 UserPara2 返回临时变量 5. RequestKeyFrame() 参数:[in]
版权所有(C)北京先进视讯科技有限公司 17

先进视讯 iDVR SDK 开发手册

Guiddir 目录服务的 GUID (暂写都是 0) Guidgateway 网关的 GUID Guidvideo 镜头的 EncoderGuid 镜头编码器 6. StopEncoder()关闭 编码器 参数:[in] SiteGuid 站点 GUID 同 StartEncoderEx。 EncGuid 镜头视频编码器 Guid 7. EventConnectBreak 服务器的连接中断时触发此事件 8. ControlReq 登录请求 参数:[in] Strguid 自动生成该用户的 GUID 由 advwarp.dll UserManagerWarp ValidateUser 登陆成功后生成 EncID:需要进行控制的 镜头设备的 GUID 9. UnControl 放弃请求 参数:[in] Strguid 自动生成该用户的 GUID 由 advwarp.dll UserManagerWarp ValidateUser 登陆成功后生成 EncID:需要进行控制的 镜头设备的 GUID 10. PTZAction PTZ 控制 参数:[in] (SITEGUID,SerialGuid,ProtocaID,X,AddressID,spd); X= 上:13 下:14 左:11 右:10 12 放大:2 缩小:1 缩放停: 3 光圈大:8 光圈小:7 光圈停: 9 聚焦远:5 聚焦近:4 聚焦停: 6 SITEGUID: 站点 GUID SerialGuid:串口 GUID ProtocaID:PTZ ID AddressID: 地址 ID Spd : 1-7 速度级别。 7 最快 11.MetrixAction 矩阵控制 参数:[in] (SiteGuid,SerialGuid,Protocal,X,spd,0) SiteGuid: 站点 GUID SerialGuid:串口 GUID Protocal:协议地址 SPD:1-7 速度级别 X= 上:13 下:14 左:11 右:10
版权所有(C)北京先进视讯科技有限公司

18

先进视讯 iDVR SDK 开发手册

放大: 2 缩小: 3 光圈大:8 光圈小:7 聚焦远:5 聚焦近:4 停止 23 (以上停止都是 23) 12. PTZAction DVR 控制添加 ptz 协议 id :当设备中添加 DVR ptz 协议 包括:HikVision (DVR)、DaHua (DVR)、DALI (DVR) 进入实时监控界面后,按住 shift 鼠标左键点开刚才添 加 ptz 协议的镜头,弹出新的一个(空白)页面,在 ie 地址栏中 有一串字符串,最后一个 参数 为 ptz 协议 ID,其中:101 HikVision (DVR)、102 DaHua (DVR)、103 DALI (DVR) 参数:[in] (SiteGuid,SerialGuid,ProtocaID,17,AddressID,PID); SiteGuid: 站点 GUID SerialGuid:串口 GUID ProtocaID:PTZ ID AddressID: 地址 ID 数字键 PID 0 —— 10 1 至 9 —— 1 至 9 10 至 16 —— 90 至 96 PID: 开/关:11 编辑:12 录像:13 主菜单:14 放像:15 多画面:16 确认:17 退出:18 上:19 下:20 左:21 右:22 输入法:23 对讲:24 系统信息:25 云镜 云台控制:26 云台自动扫描:27 上一段 (DALI):28 下一段 (DALI):29 慢放 (DALI):30 快进 (DALI):31 辅助,选择控云台 (DALI):32 停止录像 (DALI):33 13. PTZAction 辅助设备开 32、关 25 参数:[in] (SiteGuid,SerialGuid,ProtocaID,32,AddressID, PID); SiteGuid: 站点 GUID SerialGuid:串口 GUID ProtocaID:PTZ ID AddressID: 地址 ID PID 辅助设备 ID 范围 1-8 14. MetrixAction 辅助设备通过距阵 开是 25、关是 32 参数:[in] (SiteGuid,SerialGuid, ProtocaID,25,PID,0); SITEGUID: 站点 GUID
版权所有(C)北京先进视讯科技有限公司

19

先进视讯 iDVR SDK 开发手册

SerialGuid:串口 GUID ProtocaID:PTZ ID AddressID: 地址 ID PID 辅助设备 ID 范围 1-8 15. PTZAction 预置位置 17 设置预置位、16 保存预置位、24 清除预置位 参数:[in] (SiteGuid,SerialGuid,ProtocaID,17,AddressID, PID); SiteGuid: 站点 GUID SerialGuid:串口 GUID ProtocaID:PTZ ID AddressID: 地址 ID PID 预置位置 ID 范围 1-99 (其中 34 为 画面分割,33 为 画面自动切换) 16. MetrixAction 预置位置(通过距阵) 参数:[in] [in] (SiteGuid,SerialGuid, ProtocaID,17,PID,0); SiteGuid: 站点 GUID SerialGuid:串口 GUID ProtocaID:PTZ ID AddressID: 地址 ID PID 预置位置 ID 范围 1-99 (其中 34 为 画面分割,33 为 画面自动切换) 17. MetrixActionEx 矩阵 PIN 码登录 参数:[in] SiteGuid,SerialGuid, Protocal,1,InputID,OutPutID,UserPin 18. EventEventMsgInfo 报警时触发此事件 参数[out] EventID 报警事件的 ID EventMsg 事件源名称 19. StartSpeakEx()向设备发送声音 参数:[in] IP: PROT 20. EventStartSpeakedEx 向设备发送声音时所触发的事件 参数[out] SpeakGuid Success DivceType IP
版权所有(C)北京先进视讯科技有限公司

20

先进视讯 iDVR SDK 开发手册

Port 21. PTZAction 方法中 PTZActionType 枚举的详细解释 PTZActionType ZOOMWIDE ZOOMTELE ZOOMSTOP FOCUSNEAR FOCUSFAR FOCUSSTOP IRISOPEN IRISCLOSE IRISSTOP PANRIGHT PANLEFT PANSTOP TILTUP TILTDOWN TILTSTOP SETPRESET GOTOPRESET SETSEQUENCEPOINT RUNSEQUENCE SETCRUISESTART SETCRUISEEND RUNCRUISE TOURSTOP CLEARPRESET AUX_OFF AUX_ON RIGHTUP RIGHTDOWN LEFTUP LEFTDOWN KEYBOARD 值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 32 33 34 35 36 37 缩小图像 放大图像 停止缩放图像 拉近焦距--聚焦 拉远焦距--散焦 停止变换焦距 光圈放大 光圈缩小 停止光圈缩放 向右旋转镜头 向左旋转镜头 停止旋转/倾斜镜头 向上倾斜镜头 向下倾斜镜头 未使用 保存当前画面到指定 ID 的预设位置 切换当前画面到指定 ID 的预设位置 未使用 未使用 设置云台巡航起始点 设置云台巡航结束点 启动云台巡航 未使用 清除指定 ID 预设位置的信息 关闭指定 ID 的辅助设备 打开指定 ID 的辅助设备 未使用 未使用 未使用 未使用 未使用 表3 说明

版权所有(C)北京先进视讯科技有限公司

21

先进视讯 iDVR SDK 开发手册

9.2 advShowlive.dll 接口说明
1. StartVIDEOEx 打开 图像 返回图像 参数:[in] mIP :组播 IP mPort :组播端口 DeviceType:1:1600 2:1300 3:1320 4:1304 NetType:0 局域 1 广域 IVSIP:转发站点 (NetType=1 时返回) IVSPort:转发端口(NetType=1 时返回) 2. StartAudioEx 打开 声音 参数:[in] mIP :组播 IP mPort :组播端口 DeviceType:1:1600 2:1300 3:1320 4:1304 NetType:0 局域 1 广域 IVSIP:转发站点 (NetType=1 时返回) IVSPort:转发端口(NetType=1 时返回 3. StopVideoEx()关闭 图像 4. StopAudioEx()关闭 声音 5. CaptureBmp 图像运动过程中的图片抓取, (要求:屏幕颜色在 24 位以上) 参数:[in] filename:带路径的 BMP 图片文件名 函数依据参数文件扩展名的不同可以生成 BMP 和 JPG 两种格式的图片,如下面的代码生成 JPG 格式的图片如: string capturePath = axAVShow1.GetRegValue(3).ToString().Trim(); string pictureFileName = UnitName + "_" + EncName + ".jpg"; axAVShow1.CaptureBmp(Path.Combine(capturePath, pictureFileName)); 此方法结束后不会触发任何事件。 在执行 avShow.CaptureBmp()函数后立即加载所抓取的图片文件, 可能会出现无法访问 的情况,原因是 avShow.CaptureBmp()函数执行需要一定的时间,如果立即加载抓取的图片 文件,此时该图片可能还没有生成。 解决方法是: 使用 FileSystemWatcher 监视所抓取的图片文件是否创建完毕, 待图片文件创 建完毕后再调用该文件。 6. OnDbClick()鼠标双击左键事件
版权所有(C)北京先进视讯科技有限公司 22

先进视讯 iDVR SDK 开发手册

7. OnClick ()鼠标单击左键事件 8. OnRClick 鼠标单击右键事件 返回鼠标相对屏幕的坐标 参数:[in] Vguid:当前播放视频的 GUID Vname:当前播放视频的名字 Aguid:当前播放音频的 GUID Aname:当前播放音频的名字 Para1:临时变量 Para2:临时变量 9. StartRecord(Path\filename) 本地录像(开始) Path\filename 如:c:\adv\2005060101(无需扩展名字) 10. StopRecord()本地录像(停止) 11. StartSpeakMulti()开始发送声音 参数:[in] IPadd,PORT, deviceType SpkGSM: 1: GSM / 0 : 老设备 12. StopSpeakMulti()断开发送的声音 13. MouseMove()鼠标移动返回鼠标相对图像的坐标 参数:[out] mousePositionx:鼠标所在屏幕的位置 X 坐标 mousePositiony 鼠标所在屏幕的位置 Y 坐标

版权所有(C)北京先进视讯科技有限公司

23

先进视讯 iDVR SDK 开发手册

9.3 ArchiveClientCtrl.dll回放控件接口说明 9.3.1 属性
名称 ClientGUID CamName StartTime EndTime SeekTime PAUSED PlaySpeed PORT IP 类型 BSTR BSTR DATE DATE DATE INT INT BSTR BSTR 描述 用户的 GUID 镜头的 GUID 开始时间 结束时间 检索时间默认:0 1:暂停 0:播放 播放速度 回放服务器的 IP 端口号(网络字节序) 回放服务器的 IP 地址(网络字节序)

*属性备注: PORT 和 IP 可通过调用 advwarp.RecordManWarp.GetArchieveInfo(RsiteGuid,IP,Port)方 法获得,第一个参数是录像服务站点的 GUID,后两个参数返回 IP 和 PORT.

9.3.2 方法
1. Startplayer 开始查询并播放 2. StopPlayer 停止播放 3. CaptureBITMAP 抓图 参数:[in] BSTR FileName 文件存放目录+文件名 4. BeginRecord 录制当前正在播放的文件(可做录像下载使用,如果带宽足够,可 8 速下 载) 参数:[in] szPathName 路径名称和文件名字(无需扩展名字) [out] int Result 1: 表示初始化成功 -1: 录像的文件名重复 5. StopRecord()结束录像当前正在播放的文件 6. StartDownload()下载录像文件
版权所有(C)北京先进视讯科技有限公司 24

先进视讯 iDVR SDK 开发手册

参数: sfilename 路径名称和文件名字 int_Return 返回“下载成功

9.3.3 事件
1. EventNowState 控件执行状态的描述 参数: BSTR strState 2. FrameShowed 现在播放视频的时间 参数: DATE datetime 3. RecordTimeSpanFound 在 STARTPLAYER 方法后触发,返回起始时间段,此事件可能触发 多次,最后返回 dtstart=0,dtEnd=0 时,表示查询结束。客户界面开发者可由这些时间段 来构造一个进度条。 参数: DATE dtStart DATE dtEnd 4. EventState 录制当前正在播放的文件 的事件 参数:[OUT] INT MsgType 消息 ID(=1:当前缓冲区内的缓冲帧的个数) INT MsgValue 值 INT MsgValue1 保留

版权所有(C)北京先进视讯科技有限公司

25


相关文章:
网络SDK开发手册
网络SDK 编程手册 网络 SDK 开发手册 VERSION 3.0.5.4 (Build 20120605) 2012-06-05 版权所有 侵权必究 第 1 页共 101 页 网络 SDK 编程手册 前 言 非常...
iDVR 3.0 Build 58用户使用说明手册2
1 iDVR 3.0 Build 58 使用手册 6.3.2.4 视频窗口转换功能键点击左侧的设备...先进视讯 iDVR3.0 3.5 S... 25页 免费 iDVR 3.0 Build 58用户使... 暂无...
医院视频监控系统解决方案
搜试试 3 帮助 全部 DOC PPT TXT PDF XLS ...基于成熟可靠的监控系统平台 先进视讯自主研发的监控...1/2 相关文档推荐 【特别推荐】视频监控系... 10...
更多相关标签: