HKWebPlayer.txt 39.4 KB
Newer Older
1
海康网页播放小程序(支持多路):基于跨浏览器的原生小程序系统-PluginOK(牛插)中间件( https://github.com/wangzuohuai/WebRunLocal )网络高级版开发,底层调用海康的设备网络SDK(https://open.hikvision.com/download/5cda567cf47ae80dd41a54b3?type=10)和开源LibVLC支持库实现播放。最低可用在Chrome 41、Firefox 50、Edge 80(Chromium内核)、360极速/安全、IE 8、Oprea 36、QQ、搜狗等浏览器,也兼容运行于这些浏览器的最新版本,建议在Windows 7及以上版本使用。
W
wangzuohuai 已提交
2 3

本小程序具有如下优点:
4 5 6
1)、全市场可实现较低延迟(200毫秒左右)的独创播放方案,主流版本的浏览器都支持;
2)、支持多路同时实时播放、回放、支持抓图、录屏、高清视频或大屏播放性能好;
3)、底层播放技术采用海康设备网络SDK(版权归原厂家,最终用户需获得原厂使用授权),支持海康私有协议及RTSP流播放、云台控制、语音对讲等,支持H.264和H.265;
W
wangzuohuai 已提交
7 8
4)、播放小程序额外付费后可获得源代码进行定制开发;
5)、支持海康的摄像头和硬盘录像机等各系列的设备;
9
6)、支持本地MP4等视频文件和RTSP、RTMP、MMS等网络流播放。
W
wangzuohuai 已提交
10

11 12 13 14 15 16 17 18 19 20 21 22 23
适用于但不仅限于以下海康产品型号:
DVR:DS-9100、DS-8100、DS-8000-S、DS-8800、DS-7800、DS-7300、DS-7200、DS-7100、DS-7000 等系
列,包括-ST、-SH、-SE、-SN、-RT、-RH、-XT 等。
NVR:DS-96000N-I24/I16、DS-96000N-F24/F16(/H)(/I)、DS-96000N-H24/H16(/H)(/I)、DS-9600N-I8/H8/F8/ST/XT、
DS-8600N-I8/H8/F8/E8/ST/XT、DS-7800N-E1/SN/SNH、DS-7600N-ST/E2/E1、DS-7700N-ST/E4、DS-9500N-ST、
DS-9500N-S、DS-9600N-SH、DS-7600N-S、DS-9664N-RX 等。
XVR:DS-9000HQH-SH、DS-8100HQH(/HGH)-SH、DS-8000HQH-SH、DS-7300HQH(/HGH)-SH、
DS-7200HQH(/HGH)-SH、DS-8800HQH(/HGH)(/HUH)-SH(/Fx)、DS-7900HQH(/HGH)(/HUH)-SH(/Fx)、
DS-7800HQH(/HGH)(/HUH)-SH(/Ex/Fx)、DS-7100HGH-E1(/F1)等。
HDVR(混合型 DVR):DS-9000、DS-8000-ST、DS-7600H-ST/-S 系列等

文件播放支持私有、PS、TS、3GP、AVI等封装的录像文件格式,支持的视频编码格式包括私有H.264编码、标准H.264、mpeg2、mpeg4、mjpeg、H.265、SVAC、Smart264、Smart265等,音频格式包括G.711、G.722、G.726、MPEG、AAC、PCM等。

W
wangzuohuai 已提交
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
1、牛插(PluginOK)中间件的安装:
1)、如果是exe的安装程序,请直接运行安装;
2)、如果是绿色版的程序包,请解压到磁盘某个目录后,双击“InstallWrl.bat”进行安装;
3)、安装完成时会启动PluginOK中间件服务,在安装目录下的Data子目录有ZbaService.txt日志文件输出运行情况。

2、海康网页播放小程序控制相关接口:
说明:以下功能请通过Web Socket连接PluginOK主服务(ws://localhost:83?sid=12345&flag=1)后可执行,如默认侦听端口不是83(关于如何配置侦听端口,请参考SDK包中的文档“PluginOK开发者手册.pdf”),请在连接地址中指定端口号进行连接。
HTTP网页在线测试:http://local.zorrosoft.com/HKFrame.html       HTTPS网页在线测试:https://local.zorrosoft.com/HKFrame.html
如还需兼容IE浏览器使用,网络版测试网页中 <object ID="WrlWS" CLASSID="CLSID:C0971B90-4513-4E2D-A0B6-15B915FE748A" width="0" height="0"></object>
的CLSID需要替换为:21ADE2E6-B4DD-4F3E-8BD5-9DDAD1785F3A
前端集成可参考以上测试网页进行,HTML网页中需要嵌入以下类似代码;
A、标记小程序的显示位置和大小
.HKWebPlayer {
            margin: 20px 0 0 20px;
            width: 480px;
            height: 320px;
            border: 1px solid blue;
        }
或者
.HKWebPlayer {
            width: 480px;
            height: 320px;
            top: 20px;
            left: 20px;
            border: 1px solid blue;
        }
如果在网页Header区没有标记小程序初始显示位置和大小,请在启动小程序的JSON参数里,添加以下参数:
"Left":20,"Top":20,"Width":480,"Height":320

B、网页中嵌入元素
支持IFrame的:
<iframe name="HKWebPlayer" id="HKWebPlayer" src="HKApplet3.html" frameborder="0" align="left" width="550" height="540" scrolling="no">
或者直接用
<div id="HKWebPlayer" class="HKWebPlayer"</div>

另外需要嵌入用到的JS脚本,脚本程序是完全开源的。

播放窗口选中状态时单击即可全屏显示,全屏显示状态通过ESC或Windows按键取消,全屏切换会发送JSON包的VLC_FullScreen通知。

1)、请求启动海康网页播放小程序:
Type为浏览器类型,传0自动判断(前提是当前浏览器已启动并显示在最前端,Flag指定当前页加载时必须是0) 可强制指定浏览器类型Type(1代表IE 2代表Chrome 4代表Firefox 8代表Opera 16代表Edge(Chromium内核) 32代表360极速浏览器 33代表360安全浏览器 34代表360企业安全浏览器 50代表QQ浏览器 60代表搜狗浏览器)
Title:网页标题中的关键词
Flag掩码标记:1指定新标签加载(1和16都不指定时为当前页加载) 2小程序显示窗口边框 4不自动裁剪越界窗口 8自动适配网页高度和宽度显示
ShowType 播放窗口分屏类型,默认1只显示一个播放窗口,支持1-22 24 25等多达20种多窗口播放
Url:加载小程序所在的网页实际地址,在网页中指定小程序的显示位置和大小,分屏多窗口播放地址和选项等
IframeX和IframeY分别为iframe嵌套的横竖偏移修正坐标
BarW和BarH分别是网页右侧和底部预留区域,ScrollTop为顶部滚动预留高度
小程序实际显示首先会基于Url网页中指定的坐标和大小,再根据IframeX、IframeY、BarW、BarH设定的值做修正
W
wangzuohuai 已提交
72 73 74
Web:播放配置(新增方式),可代替Url使用,Flag值+64使用此配置,此命令中必须指定Left、Top、Width、Height的值
Open :启动后第一个窗口自动播放的流地址或本地多媒体文件路径,斜杠\替换成/再传,也可以在Web中指定
注意:Open、Url、Web中如果有特殊字符= & 双引号或中文等,需要用URL编码处理后传递 如非本地全路径,默认使用中间件程序Data子目录作为根目录使用
W
wangzuohuai 已提交
75 76 77 78 79 80 81 82
举例:
自动识别当前浏览器指定位置和大小启动:
{"req":"Wrl_HKWebPlayer","rid":2,"para":{"Type":"0","Title":"HK Web Player","Flag":2,"IframeX":0,"IframeY":0,"BarW":0,"BarH":0,"ScrollTop":0,"Url":"http://local.zorrosoft.com/HKFrame.html","ShowType":1,"Open":""rtsp://wzh:test123456@192.168.1.8:554/h264/ch1/main/av_stream"}}

自动识别当前浏览器自动适配网页大小启动:
{"req":"Wrl_HKWebPlayer","rid":3,"para":{"Type":"0","Title":"HK Web Player","Flag":8,"IframeX":0,"IframeY":0,"BarW":0,"BarH":0,"ScrollTop":0,"Url":"http://local.zorrosoft.com/HKFrame.html","ShowType":1,"Open":""rtsp://wzh:test123456@192.168.1.8:554/h264/ch1/main/av_stream"}}

自动识别当前浏览器指定位置和大小启动(不需要Url参数):
W
wangzuohuai 已提交
83
{"req":"Wrl_HKWebPlayer","rid":4,"para":{"Type":"0","Title":"HK Web Player","Flag":66,"Left":20,"Top":230,"Width":480,"Height":320,"IframeX":0,"IframeY":0,"BarW":0,"BarH":0,"ScrollTop":0,"ShowType":4,"Open":"https://vjs.zencdn.net/v/oceans.mp4","Web":[{"ID":2,"Uri":"rtsp://wzh:test123456@192.168.1.8:554/h264/ch1/main/av_stream","Option":"Link=1"},{"ID":3,"Uri":"http://www.zorrosoft.com/Files/PluginOKBrowserApplet.mp4","Option":"Link=0"},{"ID":4,"Uri":"rtsp://wzh:test123456@192.168.1.8:554/h264/ch1/sub/av_stream","Option":"Caching=1"}]}}
W
wangzuohuai 已提交
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137

启动后会先后收到三个JSON数据包
A、{"ret":0,"rid":1,"data":{"ID":2}}
代表小程序WS侦听服务就绪
B、{"event":"Wrl_Listen","aid":2,"data":{"SID":"123","PID":"HKWebPlayer","port":920}}
返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如新播放一个Player。
代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。
C、{"event":"Wrl_AppletOK","aid":2,"rid":1,"data":{"SID":"123","PID":"HKWebPlayer","Port":920}}

2)、请求控制海康网页播放小程序:
当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等
ID为启动小程序时返回的ID值,Code代表控制类型掩码:1关闭 2全屏显示 4自动隐藏 8还原显示 16自动适配网页高度和宽度显示模式切换 32强制隐藏。其中全屏显示2,可直接通过热键ESC或取消,设置4和32隐藏后可通过8恢复显示
{"req":"Wrl_AppletControl","rid":2,"para":{"ID":"1","Code":4}}

3)、请求滚动网页中海康网页播放小程序:
当前端截取到网页滚动通知时,需要调用此接口实现小程序和网页的滚动联动
ID为启动小程序时返回JSON中的ID值
Code为滚动方向1是水平直,2是垂直,3是同时
Left为横向滚动条位置,Top为纵向滚动条位置
{"req":"Wrl_AppletScroll","rid":3,"para":{"ID":"1","Code":2,"Left":0,"Top":100}}

4)、请求改变网页中海康网页播放小程序显示位置或大小:
当前端网页显示区域缩放时,可动态修改小程序的显示位置或大小
ID为Wrl_HKWebPlayer启动小程序时返回JSON中的ID值,Width和Height分别为新的宽度和高度
X和Y分别为新的显示位置,不指定时保持不变,指定时原设置的IframeX和IframeY失效
{"req":"Wrl_AppletResize","rid":4,"para":{"ID":1,"Width":500,"Height":600}}
或,同时修改小程序显示起始坐标
{"req":"Wrl_AppletResize","rid":5,"para":{"ID":1,"Width":500,"Height":600,"X":20,"Y":20}}

5)、请求设置网页预留右侧宽度和底部高度,滚动条信息、垂直滚动及水平滚动位置:
当小程序显示区域超过当前网页时,需去除滚动条的显示影响
ID为启动小程序时返回JSON中的ID值,BarW为预留右侧宽度 BarH为预留底部高度
Code 1代表有水平滚动条,2代表有垂直滚动条,3代表都有
ScrollTop垂直滚动条位置 ScrollTop水平滚动条位置
{"req":"Wrl_ScrollBar","rid":6,"para":{"ID":"1","Code":2,"BarW":0,"BarH":0,"ScrollTop":0,"ScrollLeft":0}}

6)、请求对小程序窗口做Alpha透明处理,便于前端临时显示覆盖到小程序窗口的菜单等:
ID为Wrl_HKWebPlayer启动小程序时返回的ID值,Alpha为透明度百分比,1-100
{"req":"Wrl_AppletAlpha","rid":7,"para":{"ID":1,"Alpha":30}}

7)、请求对小程序窗口内容进行截图:
ID为启动小程序时返回JSON中的ID值,
File为指定截图文件保存路径或扩展名
Base64指定为1时代表返回BASE64编码的图像内容
{"req":"Wrl_AppletSnap","rid":10,"para":{"ID":1,"Base64":1,"File":".png"}}

8)、请求缩放内嵌网页小程序,用于浏览器网页按比例缩放,一般不需要处理:
ID为启动小程序时返回JSON中的ID值,不指定Scale时,获取当前小程序所用的缩放百分比,一般和系统缩放比例一致
{"req":"Wrl_AppletScale","rid":11,"para":{"ID":1,"Scale":120}}

3、小程序安装、升级、卸载
1)、请求安装海康网页播放小程序
请在测试网页输入框中,输入如下请求,然后点击发送,完成安装:

W
wangzuohuai 已提交
138
{"req":"Plugin_Install","rid":1,"para":{"Name":"海康网页播放小程序","PID":"HKWebPlayer","Date":"2021-12-16","Desc":"PluginOK之上跨浏览器的海康网页播放小程序,支持在Chrome、Edge、Firefox、IE、Oprea、360、QQ等最新版本浏览器网页中低延迟多路播放RTSP流","DownAddr":"http://local.zorrosoft.com/Files/Net/HKWebPlayer.pid","MD5":"00DD771C10DB6F04D530926DE36A6435","Version":"2.2.3.8","Size":1179648,"HideIns":0,"Type":8,"Cookie":"","Auth":"","TK":"9CCAB6FD7404105A7BE7A90CF094221A861E6801CC8F355CE161235BD2A8EA8C70B66B360970E27D9D0AE07C7A44332BE6683BE678A11B106AC8543396B837730BA8FA2062A89DDF55059D79A5FADE99B5E086A7B5E3A482AC21B66DAA93AB8BE534274394921C1E33598763504988AE161CCC9DCDBE92BC0200F1C65891472D73AC9B9818A94D7ECE2FDA75B6B086DAB029DDED542240B66C7D75F61146F2BAA347BE67B640AE391EE5404E241AE94173D7318DE83C012239FE59B525331C250FA5175E1D6A1DE26578251ECAC1D9C53C86FE0EC4AE732312B7287568D2C2DFCD1CE07FDA0E021444121D88399200E5AE86E9CEF903521DF2471BBCB9FF894E"}}
W
wangzuohuai 已提交
139 140 141 142 143

启动安装后,会不断收到安装进度直到安装结束。

2)、请求升级海康网页播放小程序:

W
wangzuohuai 已提交
144
{"req":"Plugin_Update","rid":1,"para":{"Name":"海康网页播放小程序","PID":"HKWebPlayer","Date":"2021-12-16","Desc":"PluginOK之上跨浏览器的海康网页播放小程序,支持在Chrome、Edge、Firefox、IE、Oprea、360、QQ等最新版本浏览器网页中低延迟多路播放RTSP流","DownAddr":"http://local.zorrosoft.com/Files/Net/HKWebPlayer_Update.pid","MD5":"511E536E152AAF4493B067450626ADA6","Version":"2.2.3.8","Size":1179648,"HideIns":0,"Type":8,"Cookie":"","Auth":"","TK":"70F7324C8899946641EF2706332ABC34A1CD345F5637B0960A9B83FC4BD534DB2A71F2EF48789188847C57A4AD3D3FCEE985F3FE87A2A2D46D606BA36D5F09815450C5A25FF1F534F8CBB7156AB05991A158764E52F95647B33957661AA8289EB681F153AF16AB2C5C51382DDC902075A453FE0E90954F235C7F0042BCE417F874881BC4E8587D8CE3E27AA172B55185A8C0C0367F565F85BC9C43F0FA88302F39B232692C00E8E959313674EA3E7E613DDA2602B189BC1BD4954B1BB1017628879EB81638015A430563F00B0858DB9038CA7B412C04E94D3EC6381ED5C24760636E86158FA64B7A8581CE28D21368EC710929E9CD9BDD14F0025C551CCC9A5A"}}
W
wangzuohuai 已提交
145 146 147 148 149 150 151 152 153

以上安装和升级的JSON请求包,可能因版本升级导致内容不同,如遇安装或升级时报错,请联系客服获取最新的请求包。 

3)、请求卸载海康网页播放小程序:
正式版需要添加TK校验,具体规则请参考SDK包中文档“PluginOK中间件安全解决方案.pdf”,可在SDK包中的打包程序ZbaPackage.exe的中间件维护生成带TK的请求。
{"req":"Plugin_Remove","rid":3,"para":{"PID":"HKWebPlayer","Type":8}}

4、海康网页播放小程序转调用海康原生SDK封装的ActiveX控件HKVideoCom的接口,先根据Wrl_HKWebPlayer请求启动后返回的端口号,新建立一个WebSocket连接后可执行如下指令:
A、常用功能请求:
154
1) 取指定ID播放窗口属性AutoLoop(自动循环播放)值,仅对MP4等文件播放有效
W
wangzuohuai 已提交
155 156 157 158 159 160
请求:{"req":"Player_GetAutoLoop","rid":41,"para":[{"ID":1},{"ID":2}]}
返回:{"ret":0,"rid":41,"ID":1,"data":{"Ret":0,"AutoLoop":0}} 和 {"ret":0,"rid":41,"ID":2,"data":{"Ret":0,"AutoLoop":0}}
ret为请求返回值,0正常,非零不正常,不正常时请取和ret同级的错误描述err,下同
Ret为调用ActiveX对应函数返回值,0代表正常
AutoLoop为1代表循环播放,0不循环

161
2) 设置指定ID窗口AutoLoop(自动循环播放)值,仅对MP4等文件播放有效
W
wangzuohuai 已提交
162 163 164 165 166 167 168
请求:{"req":"Player_PutAutoLoop","rid":42,"para":[{"ID":1,"AutoLoop":1},{"ID":2,"AutoLoop":0}]}
分别返回:{"ret":0,"rid":42,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":42,"ID":2,"data":{"Ret":0}}

3) 取海康SDK的信息,包含版本号、对接及超时配置等信息
请求:{"req":"Player_GetSDKInfo","rid":43,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":43,"ID":1,"data":{"Ret":0,"Ver":"V6.1.6.45","Build":"20210302","GenCfg":{"SplitFile":0,"ResumeUpgrade":0,"ResumeTimeout":0},"OverTimeCfg":{"PreviewTime":5000,"VodTime":5000,"AlarmTime":5000,"ElseTime":5000},"TalkCfg":{"TalkMode":0}}}

169 170 171
4) 取指定ID窗口当前播放引擎 0私有协议 1海康MP4 2开源VLC 使用哪个引擎由启动播放参数决定
请求:{"req":"Player_PlayEngine","rid":44,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":44,"ID":1,"data":{"Ret":0,"Engine":0}} 和 {"ret":0,"rid":44,"ID":2,"data":{"Ret":0,"Engine":1}}
W
wangzuohuai 已提交
172

173
5) 取指定ID窗口当前是否异步播放 0私有协议播放有效
W
wangzuohuai 已提交
174 175 176
请求:{"req":"Player_GetAsynPlay","rid":45,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":45,"ID":1,"data":{"Ret":0,"AsynPlay":1}} 和 {"ret":0,"rid":45,"ID":2,"data":{"Ret":0,"AsynPlay":0}}

177
6) 设置指定ID窗口是否异步播放,调用播放前设置 0私有协议播放有效
W
wangzuohuai 已提交
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263
请求:{"req":"Player_PutAsynPlay","rid":46,"para":[{"ID":1,"AsynPlay":1},{"ID":2,"AsynPlay":0}]}
分别返回:{"ret":0,"rid":46,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":46,"ID":2,"data":{"Ret":0}}

7) 取指定ID窗口当前播放网络缓存帧数 1-50 1实时性好;3实时性较好;6实时性中,15流畅性中
请求:{"req":"Player_GetCaching","rid":47,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":47,"ID":1,"data":{"Ret":0,"Caching":3}} 和 {"ret":0,"rid":47,"ID":2,"data":{"Ret":0,"Caching":1}}

8) 设置指定ID窗口当前播放网络缓存帧数,调用播放前有效
请求:{"req":"Player_PutCaching","rid":48,"para":[{"ID":1,"Caching":3},{"ID":2,"Caching":1}]}
分别返回:{"ret":0,"rid":48,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":48,"ID":2,"data":{"Ret":0}}

9) 取当前连接类型 0:TCP方式,1:UDP方式,2:多播方式,3 - RTP方式,4-RTP/RTSP,5-RSTP/HTTP 
请求:{"req":"Player_GetLinkMode","rid":49,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":49,"ID":1,"data":{"Ret":0,"LinkMode":1}} 和 {"ret":0,"rid":49,"ID":2,"data":{"Ret":0,"LinkMode":0}}

10) 设置连接类型,调用播放前设置有效
请求:{"req":"Player_PutLinkMode","rid":50,"para":[{"ID":1,"LinkMode":1},{"ID":2,"LinkMode":0}]}
分别返回:{"ret":0,"rid":50,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":50,"ID":2,"data":{"Ret":0}}

11) 取当前流类型 码流类型,0-主码流,1-子码流,2-码流3,3-码流4, 4-码流5,5-码流6,7-码流7,8-码流8,9-码流9,10-码流10
请求:{"req":"Player_GetStreamType","rid":51,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":51,"ID":1,"data":{"Ret":0,"StreamType":1}} 和 {"ret":0,"rid":51,"ID":2,"data":{"Ret":0,"StreamType":0}}

12) 设置当前流类型,非本地文件、调用播放前设置有效
请求:{"req":"Player_PutStreamType","rid":52,"para":[{"ID":1,"StreamType":1},{"ID":2,"StreamType":0}]}
分别返回:{"ret":0,"rid":52,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":52,"ID":2,"data":{"Ret":0}}

13) 取当前协议类型 应用层取流协议,0-私有协议,1-RTSP协议,2-SRTP码流加密(对应此结构体中dwLinkMode 字段,支持如下方式, 为1,表示udp传输方式,信令走TLS加密,码流走SRTP加密,为2,表示多播传输方式,信令走TLS加密,码流走SRTP加密)
请求:{"req":"Player_GetProtoType","rid":53,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":53,"ID":1,"data":{"Ret":0,"ProtoType":0}} 和 {"ret":0,"rid":53,"ID":2,"data":{"Ret":0,"ProtoType":1}}

14) 设置当前协议类型,非本地文件、调用播放前设置有效
请求:{"req":"Player_PutProtoType","rid":54,"para":[{"ID":1,"ProtoType":1},{"ID":2,"ProtoType":0}]}
分别返回:{"ret":0,"rid":54,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":54,"ID":2,"data":{"Ret":0}}

15) 取指定ID窗口设备信息,仅对连接海康硬件设备登录成功后有效
请求:{"req":"Player_GetDeviceInfo","rid":55,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":55,"ID":1,"data":{"Ret":0,"SerialNumber":"DS-3SC3Q150MY-TE20200620AACHG56168112"}} 和 {"ret":0,"rid":55,"ID":2,"data":{"Ret":-2147467262,"SerialNumber":""}}

16) 异步登录设备,仅对连接海康硬件设备有效,本地MP4文件播放无需登录,登录结果通过事件接收
请求:{"req":"Player_Login","rid":56,"para":[{"ID":1,"Server":"admin:test123456@192.168.1.9:8000"},{"ID":2,"Server":"admin:test123456@192.168.1.8:8000"}]}
分别返回:{"ret":0,"rid":56,"ID":1,"data":{"Ret":0,"LoginID":1}} 和 {"ret":0,"rid":56,"ID":2,"data":{"Ret":0,"LoginID":2}}
LoginID为登录标识,登录结果事件中携带

17) 取指定ID窗口播放文件时长,仅对本地MP4等文件打开播放后有效
请求:{"req":"Player_GetFileTime","rid":57,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":57,"ID":1,"data":{"Ret":0,"FileTime":12}} 和 {"ret":0,"rid":57,"ID":2,"data":{"Ret":0,"FileTime":0}}

18) 取指定ID窗口文件已播放时长,仅对本地MP4等文件打开播放后有效
请求:{"req":"Player_GetPlayedTime","rid":58,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":58,"ID":1,"data":{"Ret":0,"PlayedTime":12}} 和 {"ret":0,"rid":58,"ID":2,"data":{"Ret":0,"PlayedTime":0}}

19) 取指定ID窗口文件已播放帧数,仅对本地MP4等文件打开播放后有效
请求:{"req":"Player_GetPlayedFrames","rid":59,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":59,"ID":1,"data":{"Ret":0,"PlayedFrames":12}} 和 {"ret":0,"rid":59,"ID":2,"data":{"Ret":0,"PlayedFrames":0}}

20) 取指定ID窗口文件总播放帧数,仅对本地MP4等文件打开播放后有效
请求:{"req":"Player_GetTotalFrames","rid":60,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":60,"ID":1,"data":{"Ret":0,"TotalFrames":12}} 和 {"ret":0,"rid":60,"ID":2,"data":{"Ret":0,"TotalFrames":0}}

21) 取指定ID窗口文件播放百分比,仅对本地MP4等文件打开播放后有效
请求:{"req":"Player_GetPlayPercent","rid":61,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":61,"ID":1,"data":{"Ret":0,"Percent":12}} 和 {"ret":0,"rid":61,"ID":2,"data":{"Ret":0,"Percent":0}}

22) 设置指定ID窗口文件播放百分比,仅对本地MP4等文件打开播放后有效
请求:{"req":"Player_PutPlayPercent","rid":62,"para":[{"ID":1,"Percent":12},{"ID":2,"Percent":0}]}
分别返回:{"ret":0,"rid":62,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":62,"ID":2,"data":{"Ret":0}}

23) 指定ID窗口文件播放控制,仅对本地MP4等文件打开播放后有效
Type类型 默认1加速播放可多次调用 2降速播放可多次调用 3倒播
请求:{"req":"Player_FileControl","rid":63,"para":[{"ID":2,"Type":1}]}
分别返回:{"ret":0,"rid":63,"ID":1,"data":{"Ret":0}}

24) 指定ID窗口设备类型和序列号,本地MP4等文件播放无效
请求:{"req":"Player_GetDeviceType","rid":64,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":64,"ID":1,"data":{"Ret":0}}

25) 取指定ID窗口当前播放通道,本地MP4等文件播放无效
请求:{"req":"Player_GetCurChannel","rid":65,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":65,"ID":1,"data":{"Ret":0,"CurChannel":2}} 和 {"ret":0,"rid":65,"ID":2,"data":{"Ret":0,"CurChannel":1}}

26) 取指定ID窗口相关状态,本地MP4等文件播放登录状态无效,只有播放状态
请求:{"req":"Player_GetStatus","rid":66,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":66,"ID":1,"data":{"Ret":0,"LoginStatus":2,"PlayStatus":1,"SupportTalk":1}} 和 {"ret":0,"rid":66,"ID":2,"data":{"Ret":0,"PlayStatus":1}}
可以返回是否支持对讲标识SupportTalk

264 265
27) 指定ID窗口播放指定通道、本地文件或RTSP流地址,0私有协议播放需要先登录
指定Channel时为指定通道播放,指定Uri时,要么是本地路径文件,要么是服务器的RTSP流地址(包含回放地址) Uri中如果有特殊字符= & 双引号或中文等,需要用URL编码处理后传递 Uri如非本地全路径,默认使用中间件程序Data子目录作为根目录使用
W
wangzuohuai 已提交
266 267 268 269 270 271
需要注意的是比如已经启动播放本地MP4文件播放,那么这个窗口调用此接口时也只能切换本地MP4文件播放
请求:{"req":"Player_Play","rid":67,"para":[{"ID":1,"Channel":1},{"ID":2,"Uri":"d:/zorro/test.mp4"},{"ID":3,"Uri":"rtsp://192.168.1.8:554/h264/ch1/sub/av_stream","Option":"Stream=1"}]}
分别返回:{"ret":0,"rid":67,"ID":1,"data":{"Ret":0,"PlayID":1}} {"ret":0,"rid":67,"ID":2,"data":{"Ret":0,"PlayID":2}} 和 {"ret":0,"rid":67,"ID":3,"data":{"Ret":0,"PlayID":3}}
PlayID为当前播放ID

28) 指定ID窗口播放控制,需要先调用播放
272
Type为控制类型,默认3暂停播放 2停止播放 4恢复播放
W
wangzuohuai 已提交
273
请求:{"req":"Player_Control","rid":68,"para":[{"ID":1,"Type":4},{"ID":2,"Type":2},{"ID":3,"Type":3}]}
W
wangzuohuai 已提交
274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296
分别返回:{"ret":0,"rid":68,"ID":1,"data":{"Ret":0}} {"ret":0,"rid":68,"ID":2,"data":{"Ret":0}} 和 {"ret":0,"rid":68,"ID":3,"data":{"Ret":0}}

29) 指定ID窗口设置声音共享模式,需要先调用播放
AudioMode 1为独占 单路音频模式;2-共享声卡,多路音频模式 
请求:{"req":"Player_SetAudioMode","rid":69,"para":[{"ID":1,"AudioMode":2},{"ID":2,"AudioMode":2}]}
分别返回:{"ret":0,"rid":69,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":69,"ID":2,"data":{"Ret":0}}

30) 指定ID窗口打开声音,本地MP4等文件播放需要先打开声音再播放,非本地MP4等文件播放需要先调用播放
请求:{"req":"Player_OpenSound","rid":70,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":70,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":70,"ID":2,"data":{"Ret":0}}

31) 指定ID窗口关闭声音,需要先调用打开声音
请求:{"req":"Player_CloseSound","rid":71,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":71,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":71,"ID":2,"data":{"Ret":0}}

32) 取当前音频音量 0-100,0代表静音,100最大音量
请求:{"req":"Player_GetAudioVolume","rid":72,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":72,"ID":1,"data":{"Ret":0,"AudioVolume":100}} 和 {"ret":0,"rid":72,"ID":2,"data":{"Ret":0,"AudioVolume":0}}

33) 设置当前音频音量 0-100,0代表静音,100最大音量
请求:{"req":"Player_PutAudioVolume","rid":73,"para":[{"ID":1,"AudioVolume":0},{"ID":2,"AudioVolume":100}]}
分别返回:{"ret":0,"rid":73,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":73,"ID":2,"data":{"Ret":0}}

297
34) 指定ID窗口进行云台控制,需要先调用播放,0私有协议播放有效
W
wangzuohuai 已提交
298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366
Type为云台控制类型
	PTZTYPE_LIGHT_PWRON		= 2,	/// 接通灯光电源
	PTZTYPE_WIPER_PWRON		= 3,	/// 接通雨刷开关
	PTZTYPE_FAN_PWRON		= 4,	/// 接通风扇开关
	PTZTYPE_HEATER_PWRON	= 5,	/// 接通加热器开关
	PTZTYPE_AUX_PWRON1		= 6,	/// 接通辅助设备开关
	PTZTYPE_AUX_PWRON2		= 7,	/// 接通辅助设备开关
	PTZTYPE_SET_PRESET		= 8,	/// 设置预置点
	PTZTYPE_CLE_PRESET		= 9,	/// 清除预置点
	PTZTYPE_ZOOM_IN			= 11,	/// 焦距以速度SS变大(倍率变大)
	PTZTYPE_ZOOM_OUT		= 12,	/// 焦距以速度SS变小(倍率变小)
	PTZTYPE_FOCUS_NEAR		= 13,	/// 焦点以速度SS前调
	PTZTYPE_FOCUS_FAR		= 14,	/// 焦点以速度SS后调
	PTZTYPE_IRIS_OPEN		= 15,	/// 光圈以速度SS扩大
	PTZTYPE_IRIS_CLOSE		= 16,	/// 光圈以速度SS缩小
	PTZTYPE_TILT_UP			= 21,	/// 云台以SS的速度上仰
	PTZTYPE_TILT_DOWN		= 22,	/// 云台以SS的速度下俯
	PTZTYPE_PAN_LEFT		= 23,	/// 云台以SS的速度左转
	PTZTYPE_PAN_RIGHT		= 24,	/// 云台以SS的速度右转
	PTZTYPE_UP_LEFT			= 25,	/// 云台以SS的速度上仰和左转
	PTZTYPE_UP_RIGHT		= 26,	/// 云台以SS的速度上仰和右转
	PTZTYPE_DOWN_LEFT		= 27,	/// 云台以SS的速度下俯和左转
	PTZTYPE_DOWN_RIGHT		= 28,	/// 云台以SS的速度下俯和右转
	PTZTYPE_PAN_AUTO		= 29,	/// 云台以SS的速度左右自动扫描

	PTZTYPE_FILL_PRE_SEQ	= 30,	/// 将预置点加入巡航序列
	PTZTYPE_SET_SEQ_DWELL	= 31,	/// 设置巡航点停顿时间
	PTZTYPE_SET_SEQ_SPEED	= 32,	/// 设置巡航速度
	PTZTYPE_CLE_PRE_SEQ		= 33,	/// 将预置点从巡航序列中删除
	PTZTYPE_STA_MEM_CRUISE	= 34,	/// 开始记录轨迹
	PTZTYPE_STO_MEM_CRUISE	= 35,	/// 停止记录轨迹
	PTZTYPE_RUN_CRUISE		= 36,	/// 开始轨迹
	PTZTYPE_RUN_SEQ			= 37,	/// 开始巡航
	PTZTYPE_STOP_SEQ		= 38,	/// 停止巡航
	PTZTYPE_GOTO_PRESET		= 39,	/// 快球转到预置点
	PTZTYPE_DEL_SEQ			= 43,	/// 删除巡航路径
	PTZTYPE_STOP_CRUISE		= 44,	/// 停止轨迹
	PTZTYPE_DELETE_CRUISE	= 45,	/// 删除单条轨迹
	PTZTYPE_DELETE_ALL_CRUISE= 46,	/// 删除所有轨迹

	PTZTYPE_PAN_CIRCLE		= 50,	/// 云台以SS的速度自动圆周扫描
	PTZTYPE_DRAG_PTZ		= 51,	/// 拖动PTZ
	PTZTYPE_LINEAR_SCAN		= 52,	/// 区域扫描
	PTZTYPE_CLE_ALL_PRESET	= 53,	/// 预置点全部清除
	PTZTYPE_CLE_ALL_SEQ		= 54,	/// 巡航全部清除
	PTZTYPE_CLE_ALL_CRUISE	= 55,	/// 轨迹全部清除
	PTZTYPE_POPUP_MENU		= 56,	/// 显示操作菜单

	PTZTYPE_TILT_DOWN_ZOOM_IN	= 58,	/// 云台以SS的速度下俯&&焦距以速度SS变大(倍率变大)
	PTZTYPE_TILT_DOWN_ZOOM_OUT	= 59,	/// 云台以SS的速度下俯&&焦距以速度SS变小(倍率变小)
	PTZTYPE_PAN_LEFT_ZOOM_IN	= 60,	/// 云台以SS的速度左转&&焦距以速度SS变大(倍率变大)
	PTZTYPE_PAN_LEFT_ZOOM_OUT	= 61,	/// 云台以SS的速度左转&&焦距以速度SS变小(倍率变小)
	PTZTYPE_PAN_RIGHT_ZOOM_IN	= 62,	/// 云台以SS的速度右转&&焦距以速度SS变大(倍率变大)
	PTZTYPE_PAN_RIGHT_ZOOM_OUT	= 63,	/// 云台以SS的速度右转&&焦距以速度SS变小(倍率变小)
	PTZTYPE_UP_LEFT_ZOOM_IN		= 64,	/// 云台以SS的速度上仰和左转&&焦距以速度SS变大(倍率变大)
	PTZTYPE_UP_LEFT_ZOOM_OUT	= 65,	/// 云台以SS的速度上仰和左转&&焦距以速度SS变小(倍率变小)
	PTZTYPE_UP_RIGHT_ZOOM_IN	= 66,	/// 云台以SS的速度上仰和右转&&焦距以速度SS变大(倍率变大)
	PTZTYPE_UP_RIGHT_ZOOM_OUT	= 67,	/// 云台以SS的速度上仰和右转&&焦距以速度SS变小(倍率变小)
	PTZTYPE_DOWN_LEFT_ZOOM_IN	= 68,	/// 云台以SS的速度下俯和左转&&焦距以速度SS变大(倍率变大)
	PTZTYPE_DOWN_LEFT_ZOOM_OUT	= 69,	/// 云台以SS的速度下俯和左转&&焦距以速度SS变小(倍率变小)
	PTZTYPE_DOWN_RIGHT_ZOOM_IN	= 70,	/// 云台以SS的速度下俯和右转&&焦距以速度SS变大(倍率变大)
	PTZTYPE_DOWN_RIGHT_ZOOM_OUT	= 71,	/// 云台以SS的速度下俯和右转&&焦距以速度SS变小(倍率变小)
	PTZTYPE_TILT_UP_ZOOM_IN		= 72,	/// 云台以SS的速度上仰&&焦距以速度SS变大(倍率变大)
	PTZTYPE_TILT_UP_ZOOM_OUT	= 73,	/// 云台以SS的速度上仰&&焦距以速度SS变小(倍率变小)
Speed是否指定速度 用户按不同解码器的速度控制值设置。取值范围[1,7] 不需要速度控制时不设置此值
Stop是否停止 0-开始,1-停止 
请求:{"req":"Player_PTZControl","rid":74,"para":[{"ID":1,"Type":1,"Speed":5,"Stop":0}]}
分别返回:{"ret":0,"rid":74,"ID":1,"data":{"Ret":0}}

367
35) 取指定ID窗口连接信息,0私有协议播放有效
W
wangzuohuai 已提交
368 369 370 371 372
Type为获取类型 1预览 2回放
3 对讲 不支持对讲的设备调用返回空
请求:{"req":"Player_GetLinkAddr","rid":75,"para":[{"ID":1,"Type":1}]}
分别返回:{"ret":0,"rid":75,"ID":1,"data":{"Ret":0,"LinkInfo":{}}}

373
36) 取指定ID窗口可用对讲通道,0私有协议播放有效,不支持对讲的设备调用返回值无效
W
wangzuohuai 已提交
374 375 376 377 378 379 380
请求:{"req":"Player_GetTalkChannel","rid":76,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":76,"ID":1,"data":{"Ret":0,"TalkStatus":""}} 和 {"ret":0,"rid":76,"ID":2,"data":{"Ret":0,"TalkStatus":""}}

37) 刷新指定ID窗口对讲状态,本地MP4文件播放无效,不支持对讲的设备调用返回值无效
请求:{"req":"Player_UpdateTalkStatus","rid":77,"para":[{"ID":1,"Channel":0}]}
分别返回:{"ret":0,"rid":77,"ID":1,"data":{"Ret":0,"TalkStatus":""}}

381
38) 开始指定ID窗口对讲 0私有协议播放有效
W
wangzuohuai 已提交
382 383 384 385 386 387
Channel 为对讲通道,同时只能开一个对讲
TalkVolume 对讲音量
LocalFile和DeviceFile分别为本地和设备对讲内容保存文件路径
请求:{"req":"Player_StartTalk","rid":78,"para":[{"ID":1,"Channel":0,"TalkVolume":60,"LocalFile":"d:/Zorro/Local.mp4","DeviceFile":"d:/Zorro/Device.mp4"}]}
分别返回:{"ret":0,"rid":78,"ID":1,"data":{"Ret":0,"TID":1}}

388
39) 取指定ID窗口当前对讲音量 0-100,0代表静音,100最大音量 0私有协议播放有效
W
wangzuohuai 已提交
389 390 391
请求:{"req":"Player_GetTalkVolume","rid":79,"para":[{"ID":1},{"ID":2}]}
分别返回:{"ret":0,"rid":79,"ID":1,"data":{"Ret":0,"TalkVolume":100}} 和 {"ret":0,"rid":79,"76":2,"data":{"Ret":0,"TalkVolume":0}}

392
40) 设置指定ID窗口当前对讲音量 0-100,0代表静音,100最大音量 0私有协议播放有效
W
wangzuohuai 已提交
393 394 395
请求:{"req":"Player_SetTalkVolume","rid":80,"para":[{"ID":1,"TalkVolume":50},{"ID":2,"TalkVolume":50}]}
分别返回:{"ret":0,"rid":80,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":80,"ID":2,"data":{"Ret":0}}

396
41) 指定ID窗口对讲请求停止 0私有协议播放有效
W
wangzuohuai 已提交
397 398 399 400 401
请求:{"req":"Player_StopTalk","rid":81,"para":[{"ID":1}]}
分别返回:{"ret":0,"rid":81,"ID":1,"data":{"Ret":0}}

42) 指定ID窗口截图
Type 指定图像类型,可指定1(BMP,不支持BASE64编码内容)、默认3(JPG)、4(PNG) 
W
wangzuohuai 已提交
402 403 404
Base64指定为1时代表直接返回BASE64编码的图像内容
AutoDel设置1 Base64为1时生效,自动删临时生成的图片文件,不删除设置0
Count截取图数量,默认截一张,Delay指定延迟毫秒数开始,Interval多张时间隔毫秒数
W
wangzuohuai 已提交
405
PathType 指定截图图片保存路径类型,0默认临时目录,1操作系统桌面 2当前登录用户我的图片目录 3中间件数据目录
W
wangzuohuai 已提交
406 407
Quality 截取质量 0代表原图,VLC的取值0-5,海康的取值0-2,数值越大,质量越低
请求:{"req":"Player_SnapshotImg","rid":82,"para":[{"ID":1,"Type":3,"PathType":3,"Quality":0,"Count":3,"Base64":1,"AutoDel":1,"Delay":1000,"Interval":200}]}
W
wangzuohuai 已提交
408 409 410
分别返回:{"ret":0,"rid":82,"data":{"Ret":0,"Img":[{"Size":0,"Width":0,"Height":0,"File":""}]}} 和 {"ret":0,"rid":82,"ID":2,"data":{"Ret":0,,"Img":[{"Size":0,"Width":0,"Height":0,"File":""}]}}

43) 指定ID窗口录像到文件
411
File为录像目标文件不指定时自动生成 如非本地全路径,默认使用中间件程序Data子目录作为根目录使用  Second为录制限时时间(秒),0代表由前端指定停止
W
wangzuohuai 已提交
412 413 414 415 416 417 418 419
{"req":"Player_RecordFile","rid":83,"para":[{"ID":1,"File":"D:/Zorro/Record.mp4","Second":30}]}
返回:{"ret":0,"rid":83,"ID":1,"data":{"Ret":0,"PID":1}}

44) 指定ID窗口停止录像
{"req":"Player_StopRecord","rid":84,"para":[{"ID":1}]}
File为录像文件路径,Size为录像文件大小
返回:{"ret":0,"rid":84,"ID":1,"data":{"Ret":0,"PID":1,"File":"D:/Zorro/Record.mp4","Size":321}}

420
45) 动态改变分屏数量或播放内容,0私有协议播放需要指定Server参数
W
wangzuohuai 已提交
421
ShowType指定分屏数量,如果不变就不设置
422
Play指定播放内容:Uri中如果有特殊字符= & 双引号或中文等,需要用URL编码处理后传递 Uri如非本地全路径,默认使用中间件程序Data子目录作为根目录使用
W
wangzuohuai 已提交
423 424 425 426 427 428 429 430 431 432 433 434 435 436 437
请求范例1:{"req":"Player_ChangePlay","rid":85,"para":{"ShowType":2}}
请求范例2:{"req":"Player_ChangePlay","rid":85,"para":{"Play":[{"ID":1,"Server":"admin:test123456@192.168.1.9:8000","Option":"Stream=1 Link=0 caching=3"},{"ID":2,"Uri":"D:/Zorro/test.mp4"}]}}
请求范例3:{"req":"Player_ChangePlay","rid":85,"para":{"ShowType":3,"Play":[{"ID":1,"Uri":"rtsp://wzh:test123456@192.168.1.8:554/h264/ch1/main/av_stream","Option":"caching=3"},{"ID":2,"Uri":"D:/Zorro/test.mp4","Option":""},{"ID":3,"Server":"admin:test123456@192.168.1.9:8000","Uri":"rtsp://wzh:test123456@192.168.1.8:554/h264/ch1/main/av_stream","Option":"Stream=1"}]}}
分别返回:{"ret":0,"rid":85,"data":{"Ret":0,"Play":[]}}

46) 设置当前焦点播放窗口
ID是当前播放窗口序号,ID是从1开始,需要确保不越界
{"req":"Player_SetSelect","rid":86,"para":{"ID":2}}
返回:{"ret":0,"rid":86,"ID":2,"data":{"Ret":1}}

47) 获取当前焦点播放窗口序号
{"req":"Player_GetSelect","rid":87,"para":{}}
返回:{"ret":0,"rid":87,"ID":2,"data":{"Ret":1}}
ID为当前播放焦点窗口

438
48) 指定ID窗口回放指定文件,必须先登录
439 440 441 442 443
Uri为服务器上的文件名称 Reverse为1代表倒放
{"req":"Player_PlayBackByName","rid":88,"para":[{"ID":1,"Reverse":0,"Uri":"test.mp4"},{"ID":2,"Reverse":1,"Uri":"hello.mp4"}]}
返回:{"ret":0,"rid":88,"ID":1,"data":{"Ret":0,"PlayID":1}} 和 {"ret":0,"rid":88,"ID":2,"data":{"Ret":0,"PlayID":2}}
PlayID为当前播放ID

444
49) 指定ID窗口回放指定文件,必须先登录 0私有协议播放有效
445 446 447 448 449
Channel指定通道号 Begin和End为指定回放起始和结束时间,时间为UNIX时间戳,从1970年1月1号零点零分零秒开始 Reverse为1代表倒放
{"req":"Player_PlayBackByTime","rid":88,"para":[{"ID":1,"Channel":0,"Begin":1601917153,"End":1601917753,"Reverse":0},{"ID":2,"Channel":1,"Begin":1601917153,"End":1601917653,"Reverse":1}]}
返回:{"ret":0,"rid":49,"ID":1,"data":{"Ret":0,"PlayID":1}} 和 {"ret":0,"rid":49,"ID":2,"data":{"Ret":0,"PlayID":2}}
PlayID为当前播放ID

450
50) 指定ID窗口回放控制 0私有协议播放有效 必须先调用了回放Player_PlayBackByName或Player_PlayBackByTime接口
451 452 453 454 455 456 457 458 459
Type控制类型:1开始播放 2停止播放 3暂停播放 4恢复播放(在暂停后调用将恢复暂停前的速度播放) 5快放 6慢放 7正常速度播放
8单帧放(恢复正常回放使用NET_DVR_PLAYNORMAL命令) 9打开声音 10关闭声音 11调节音量,取值范围[0,0xffff]
12改变文件回放的进度 13获取文件回放的进度 14获取当前已经播放的时间(按文件回放的时候有效) 15获取当前已经播放的帧数(按文件回放的时候有效)
16获取当前播放文件总的帧数(按文件回放的时候有效) 17获取当前播放文件总的时间(按文件回放的时候有效) 20丢B帧
Val控制值,11调节音量 12改变回放进度等需要设置
{"req":"Player_PlayBackControl","rid":90,"para":[{"ID":1,"Type":12,"Val":1},{"ID":2,"Type":12}]}
返回:{"ret":0,"rid":90,"ID":1,"data":{"Ret":0,"Val":1}}  和 {"ret":0,"rid":90,"ID":2,"data":{"Ret":0,"Val":2}}
Val为获取值,Code为13 14 15 16 17等时有效

W
wangzuohuai 已提交
460 461 462 463
51) 指定ID分屏窗口全屏,一次请求只能指定一个分屏窗口全屏
请求:{"req":"Player_Fullscreen","rid":91,"para":[{"ID":1}]}
分别返回:{"ret":0,"rid":91,"ID":1,"data":{"Ret":0}}

W
wangzuohuai 已提交
464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487
5、海康网页播放小程序接收的通知:
这些通知必须通过WebSocket连接到此小程序侦听的端口才能接收到。

A、小程序:
1) Selected 选中分屏窗口序号通知
{"event":"Player_Selected","ID":1,"data":{}} 

2) FullScreen 分屏窗口切换全屏通知
{"event":"Player_FullScreen","ID":1,"data":{}} 

3) 录像结束通知(限时录制时发出)
ID 为窗口序号 PID为录像ID Size录像文件大小 File录像实际全路径
{"event":"Player_StopRecord","ID":1,"data":{"Ret":0,"PID":1,"File":"D:/Zorro/test.mp4","Size":321}} 

4) 登录状态通知,播放MP4等本地文件无效
{"event":"Player_LoginStatus","ID":1,"data":{"LID":1,"Status":0,"Desc":"登录失败"}} 

5) 播放状态通知
{"event":"Player_PlayStatus","ID":1,"data":{"PID":1,"Status":10,"Desc":"播放结束"}} 

6) 异常通知
Type 0x8001语音对讲异常 0x8003网络预览异常 0x8005预览时重新连接 0x8010回放异常 0x8015预览时重连成功
{"event":"Player_Exception","ID":1,"data":{"Type":1}} 

488 489 490
7) 海康SDK错误通知 SDK支持库还未安装
{"event":"Player_SDKErr","ID":1,"data":{}} 

W
wangzuohuai 已提交
491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510
8) VLC播放事件通知
Type事件类型 Val事件相关的值
Type包含的值含义如下
258(libvlc_MediaPlayerOpening)		播放内容打开中...
259(libvlc_MediaPlayerBuffering)		缓冲数据中... Val中包含缓冲数据的长度
260(libvlc_MediaPlayerPlaying)		开始播放
261(libvlc_MediaPlayerPaused)		播放暂停
262(libvlc_MediaPlayerStopped)		播放停止
263(libvlc_MediaPlayerForward)		播放前进
264(libvlc_MediaPlayerBackward)		播放后退
265(libvlc_MediaPlayerEndReached)		播放结束
266(libvlc_MediaPlayerEncounteredError) 	播放遇到错误
267(libvlc_MediaPlayerTimeChanged)  		播放时间变化 Val对应最新的时间
268(libvlc_MediaPlayerPositionChanged) 	播放位置变化 Val对应最新的位置,这个用来做播放进度展示,*100就是百分比
273(libvlc_MediaPlayerLengthChanged) 		播放长度变化 Val对应最新的长度
281(libvlc_MediaPlayerMuted)		播放静音
282(libvlc_MediaPlayerUnmuted)		播放取消静音
283(libvlc_MediaPlayerAudioVolume)  		播放音量通知 Val对应最新的音量
{"event":"Player_VlcEvent","ID":1,"data":{"Type":1,"Val":0}} 

W
wangzuohuai 已提交
511 512 513 514 515 516 517 518 519 520 521 522
B、PluginOK支持的事件通知:

1) 小程序是否响应了热键全屏
{"event":"Player_FullScreen","data":{"FullScreen":0}} FullScreen为当前是否全屏标记

2) Wrl_AppletExit 小程序退出通知
{"event":"Wrl_AppletExit","data":{"ID":1}}

6、其它
请求参数的JSON数据包,请确保是UTF-8无签名的编码。
更多接口请求说明,请参考安装目录中的文档TestWrl.txt、SDK包中的“PluginOK开发者手册.pdf”及“PluginOK中间件安全解决方案.pdf”。
如还有疑问请直接联系客服 加微信:ZorroSoft,或加QQ群:23126938