海康视频网页播放器(支持多路):基于跨浏览器的原生小程序系统-PluginOK(牛插)中间件( https://github.com/wangzuohuai/WebRunLocal )网络高级版开发,底层可调用海康的设备网络SDK(https://open.hikvision.com/download/5cda567cf47ae80dd41a54b3?type=10)和开源LibVLC支持库(需安装VLC media player或搭配绿色版VLC桌面程序2.2及以上版本)实现播放。最低可用在Chrome 41、Firefox 50、Edge 80(Chromium内核)、360极速/安全、IE 8、Opera、Electron、Vivaldi、Brave、QQ、搜狗等浏览器,也兼容运行于这些浏览器的最新版本,建议在Windows 7及以上版本使用,XP下VLC建议用3.0.3或2.2.8版,XP以上系统建议使用3.0.18版本,VLC及海康SDK等播放程序版权归相关公司所有。 本小程序具有如下优点: 1)、全市场可实现较低延迟(200毫秒左右)的首选播放方案,主流版本的浏览器都支持; 2)、支持多路同时实时播放、回放、支持帧回退、支持下一帧、支持抓图、录屏、高清视频或大屏播放性能好; 3)、底层播放技术采用海康设备网络SDK(版权归原厂家,最终用户需获得原厂使用授权),支持海康私有协议及RTSP流播放、云台控制、语音对讲等,支持H.264和H.265; 4)、播放小程序额外付费后可获得源代码进行定制开发; 5)、支持海康的摄像头和硬盘录像机等各系列的设备; 6)、支持本地MP4等视频文件和RTSP、RTMP、MMS等网络流播放。 适用于但不仅限于以下海康产品型号: 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等。 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浏览器使用,网络版测试网页中 的CLSID需要替换为:21ADE2E6-B4DD-4F3E-8BD5-9DDAD1785F3A 前端集成可参考以上测试网页进行需要嵌入用到的JS脚本,脚本程序是完全开源的。 播放窗口选中状态时双击或按字母F即可全屏显示,全屏显示状态通过ESC、Windows按键、ESC或字母F取消,全屏切换会发送JSON包的Player_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:网页标题中的关键词 Url:加载小程序所在的网页实际地址,在网页中指定小程序的显示位置和大小,分屏多窗口播放地址和选项等,不建议使用了,建议改用Web参数 Flag掩码标记:1指定新标签加载(1和16都不指定时为当前页加载) 2小程序显示窗口边框 4不自动裁剪越界窗口 8自动适配网页高度和宽度显示 64启用Web参数 128防截屏 256强制显示到副屏 512允许同一网页加载多实例 Web:播放配置(新增方式),可代替Url使用,Flag值+64使用此配置,此命令中必须指定Left、Top、Width、Height的值 Version播放小程序版本,0在播放小程序中播放,1在独立进程中播放 ShowType 播放窗口分屏类型,默认1只显示一个播放窗口,支持1-22 24 25等多达20种多窗口播放 IframeX和IframeY分别为iframe嵌套的横竖偏移修正坐标 BarW和BarH分别是网页右侧和底部预留区域,ScrollTop为顶部滚动预留高度 小程序实际显示首先会基于Web或Url网页中指定的坐标和大小,再根据IframeX、IframeY、BarW、BarH设定的值做修正 Option:播放参数,多个参数中间用空格区分 PlayEngine=2 指定用LibVLC引擎播放,默认=0是采用海康SDK私有协议播放,=1是采用海康MP4本地文件播放引擎播放 AutoLoop=1 指定是否循环播放,1循环 Caching=30 指定网络缓存时间30代表300毫秒 Server=8000 指定海康SDK私有协议播放服务器端口,非8000时设置 仅对PlayEngine=0有效 Channel=1 私有协议播放时的通道ID,直接连摄像头播放时无需指定,默认通道序号是1 硬盘录像机可指定大于32的通道数值 Stream=1 指定流类型 0是主码流,1是子码流 仅对PlayEngine=0有效 Link=1 指定连接类型 0是TCP方式 1是UDP方式 PlayEngine=1时无效 Mute=1 指定是否静音播放 1是静音 FrameCache=20 指定是否按帧播放 0否,大于0代表按帧播放时最大缓存帧数量 仅对PlayEngine=2有效 AudioColumn=1 指定是否通知音柱信息 1推送 仅对PlayEngine=2有效 ToolBar=1 指定是否显示播放工具栏 1是显示 Open :启动后第一个窗口自动播放的流地址或本地多媒体文件路径,斜杠\替换成/再传,也可以在Web中指定 注意:Open、Url、Web中如果有特殊字符= & 双引号或中文等,需要用URL编码处理后传递 如非本地全路径,默认使用中间件程序Data子目录作为根目录使用 举例: 自动识别当前浏览器指定位置和大小启动: {"req":"Wrl_HKWebPlayer","rid":5,"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,"Version":"0","ShowType":6,"Web":[{"ID":1,"Server":"wzh:test123456@192.168.1.12:8000","Option":"Channel=33 Caching=1 Stream=1 Link=1"},{"ID":2,"Server":"wzh:test123456@192.168.1.2:37777","Option":"Channel=1 Link=1 Stream=0 PlayEngine=4"},{"ID":3,"Server":"admin:test123456@192.168.1.8:8000","Option":"Link=1 Stream=0"},{"ID":4,"Server":"wzh:test123456@192.168.1.8:8000","Option":"Link=0 Stream=1"},{"ID":5,"Uri":"d:/zorro/test.mp4","Option":"PlayEngine=1"},{"ID":6,"Uri":"https://vjs.zencdn.net/v/oceans.mp4","Option":"PlayEngine=2"}]}} 自动识别当前浏览器充满网页区显示: {"req":"Wrl_HKWebPlayer","rid":5,"para":{"Type":"0","Title":"HK Web Player","Flag":72,"Left":20,"Top":230,"Width":480,"Height":320,"IframeX":0,"IframeY":0,"BarW":0,"BarH":0,"ScrollTop":0,"Version":"0","ShowType":6,"Web":[{"ID":1,"Server":"wzh:test123456@192.168.1.12:8000","Option":"Channel=33 Caching=1 Stream=1 Link=1"},{"ID":2,"Server":"wzh:test123456@192.168.1.2:37777","Option":"Channel=1 Link=1 Stream=0 PlayEngine=4"},{"ID":3,"Server":"admin:test123456@192.168.1.8:8000","Option":"Link=1 Stream=0"},{"ID":4,"Server":"wzh:test123456@192.168.1.8:8000","Option":"Link=0 Stream=1"},{"ID":5,"Uri":"d:/zorro/test.mp4","Option":"PlayEngine=1"},{"ID":6,"Uri":"https://vjs.zencdn.net/v/oceans.mp4","Option":"PlayEngine=2"}]}} 启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":5,"data":{"ID":2}} 代表小程序WS侦听服务就绪 B、{"event":"Wrl_Listen","aid":2,"rid":5,"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":5,"data":{"SID":"123","PID":"HKWebPlayer","Port":920}} 由于依赖VLC桌面程序,所以可以提前调用以下接口获得VLC等播放器的安装情况,如未安装,可先提示下载安装 {"req":"Wrl_PlayerInfo","rid":1,"para":{}} 获得当前电脑VLC桌面播放器安装的情况,返回值 {"ret":0,"rid":1,"req":"Wrl_PlayerInfo","data":{"Info":[{"Type":1,"X64":1,"Ver":"3.0.17.4","Path":"C:/Program Files/VideoLAN/VLC/vlc.exe"}]}} Type 1 代表VLC X64 代表是否为64位版本 Ver 代表文件版本信息 Path 安装路径 2)、请求控制海康视频网页播放器: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 ID为启动小程序时返回的ID值,Code代表控制类型掩码:1正常关闭 128强制迅速关闭 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)、请求安装海康视频网页播放器 请在测试网页输入框中,输入如下请求,然后点击发送,完成安装: {"req":"Plugin_Install","rid":1,"para":{"Name":"海康网页播放器","PID":"HKWebPlayer","Date":"2023-09-29","Desc":"PluginOK之上跨浏览器的海康网页播放小程序,支持在Chrome、Edge、Firefox、IE、Oprea、360、QQ等最新版本浏览器网页中低延迟多路播放RTSP流","DownAddr":"http://local.zorrosoft.com/Files/Net/HKWebPlayer.pid","MD5":"41C5431CC1AD448410B6BC710AB19F13","Version":"2.2.11.1","Size":5668864,"HideIns":0,"Type":8,"Cookie":"","Auth":"","TK":"6EA35A6C234DEECA620E3091CE65CBF44FC40AAABF60CEE1C8C390514AF256E2C19B8027F50FC641FB609FC00D5AC8A970F32D7397ED1BF47F7FCCF8142AC0339136F91B88B343FD5FCF467F4CA43F68F989DD77EA2FEBBD6AC83F4F622AD17A046A47EE636E4115946223768E8787C12EB73F783434E548BA9BD300EC7AD6F0BADB8D3CBCBAD3CAD1428E4941B07A358875D1BDA893A576ED9794B8D54F01FAE292BEA40892D3A93FED4C7D10E24104692C132B1935F937D5449623B802BA1C262BBD58358DD94673173551A5604BB85A009EC1269A98C44940B8866E6899BB2D97A1A58F45701AAEEEA26BEE3F0C80FA64A8A2A3AB74EAE064044CCD222FE2"}} 启动安装后,会不断收到安装进度直到安装结束。 2)、请求升级海康视频网页播放器: {"req":"Plugin_Update","rid":1,"para":{"Name":"海康网页播放器","PID":"HKWebPlayer","Date":"2023-09-29","Desc":"PluginOK之上跨浏览器的海康网页播放小程序,支持在Chrome、Edge、Firefox、IE、Oprea、360、QQ等最新版本浏览器网页中低延迟多路播放RTSP流","DownAddr":"http://local.zorrosoft.com/Files/Net/HKWebPlayer_Update.pid","MD5":"E2BA4AACECDB639569886C841F1857BE","Version":"2.2.11.1","Size":5668864,"HideIns":0,"Type":8,"Cookie":"","Auth":"","TK":"0D3D03AD953C5D39BFB25437A3F6922479957AD04053E7AB016B586462637D90D14B5B64020D472F9FCA3AD3A14E69820CE4A405A7E6E19A8E270044C0C9AF72F2C8DCF5696FC6E0B05D75B048C22613485D2C1BD8666E93622F5DD93A230E328D7B371954A25DA633621D1020A6CB07813CD2EB7935EC85B984B829C9D8ECE61B383E932F8BCF5B65C9DE3C0C79DCCF3F884DE00E2512956CE2E6A46B9F4C2BC51A6E639BF03A3FA83F5116B638D09D316596876FCBD9D0A19CD56FF120536AE479EE3BE390773B09C20389E2BF16C5FCA39601C7A3A433D71504ABB8568D45256282325C97167C80918B5E096823233CD59F2814B30653FFCF3D654D8A6103"}} 以上安装和升级的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、常用功能请求: 1) 取指定ID播放窗口属性AutoLoop(自动循环播放)值,仅对MP4等文件播放有效 其中窗口序号ID,从1开始,序号原则是从左向右开始编号,然后从上到下开始顺序编号,如遇右侧多层排列窗口时,直到右侧窗口序号排序完成 请求:{"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不循环 2) 设置指定ID窗口AutoLoop(自动循环播放)值,仅对MP4等文件播放有效 请求:{"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}}} 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}} 5) 取指定ID窗口当前是否异步播放 海康私有协议播放有效 请求:{"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}} 6) 设置指定ID窗口是否异步播放,调用播放前设置 海康私有协议播放有效 请求:{"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窗口播放文件时长 请求:{"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窗口文件已播放时长 请求:{"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窗口文件播放百分比,仅对VLC引擎及本地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窗口文件播放百分比,仅对VLC引擎及本地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窗口播放控制,非实时流打开播放后有效 Type类型 默认1加速播放可多次调用 2降速播放可多次调用 3倒播(仅海康MP4本地文件播放支持) 请求:{"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}]} 设置当前播放通道请求,只对硬盘录像机有效:{"req":"Player_PutCurChannel","rid":65,"para":[{"ID":1,"Channel":33},{"ID":2,"Channel":34}]} 分别返回:{"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文件及VLC引擎播放登录状态无效,只有播放状态 请求:{"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}} 返回LoginStatus为海康私有协议登录状态 返回PlayStatus为当前播放状态,播放状态定义参考libvlc_state_t 返回是否支持对讲标识SupportTalk 海康私有协议播放有效 27) 指定ID窗口播放指定通道、本地文件或RTSP流地址,海康私有协议播放需要先登录 指定Channel时为指定通道播放,指定Uri时,要么是本地路径文件,要么是服务器的RTSP流地址(包含回放地址) Uri中如果有特殊字符= & 双引号或中文等,需要用URL编码处理后传递 Uri如非本地全路径,默认使用中间件程序Data子目录作为根目录使用 需要注意的是比如已经启动播放本地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窗口播放控制,需要先调用播放 Type为控制类型,默认3暂停播放 2停止播放 4恢复播放 请求:{"req":"Player_Control","rid":68,"para":[{"ID":1,"Type":4},{"ID":2,"Type":2},{"ID":3,"Type":3}]} 分别返回:{"ret":0,"rid":68,"ID":1,"data":{"Ret":0,"Status":3}} {"ret":0,"rid":68,"ID":2,"data":{"Ret":0,"Status":5}} 和 {"ret":0,"rid":68,"ID":3,"data":{"Ret":0,"Status":4}} 其中Status为当前播放状态 播放状态定义参考libvlc_state_t 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}} 34) 指定ID窗口进行云台控制,需要先调用播放,海康私有协议播放有效 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}} 35) 取指定ID窗口连接信息,海康私有协议播放有效 Type为获取类型 1预览 2回放 3 对讲 不支持对讲的设备调用返回空 请求:{"req":"Player_GetLinkAddr","rid":75,"para":[{"ID":1,"Type":1}]} 分别返回:{"ret":0,"rid":75,"ID":1,"data":{"Ret":0,"LinkInfo":{}}} 36) 取指定ID窗口可用视频或对讲通道,海康私有协议播放有效 Type获取类型 0可用视频通道 1可用对讲通道 请求:{"req":"Player_GetChannelInfo","rid":76,"para":[{"ID":1,"Type":0},{"ID":2,"Type":1}]} 分别返回:{"ret":0,"rid":76,"ID":1,"data":{"Ret":0,"ChannelInfo":""}} 和 {"ret":0,"rid":76,"ID":2,"data":{"Ret":0,"ChannelInfo":""}} 37) 刷新指定ID窗口对讲状态,本地MP4文件播放无效,不支持对讲的设备调用返回值无效 海康私有协议播放有效 请求:{"req":"Player_UpdateTalkStatus","rid":77,"para":[{"ID":1,"Channel":0}]} 分别返回:{"ret":0,"rid":77,"ID":1,"data":{"Ret":0,"TalkStatus":""}} 38) 开始指定ID窗口对讲 海康私有协议播放有效 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}} 39) 取指定ID窗口当前对讲音量 0-100,0代表静音,100最大音量 海康私有协议播放有效 请求:{"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}} 40) 设置指定ID窗口当前对讲音量 0-100,0代表静音,100最大音量 海康私有协议播放有效 请求:{"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}} 41) 指定ID窗口对讲请求停止 海康私有协议播放有效 请求:{"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) Base64指定为1时代表直接返回BASE64编码的图像内容 AutoDel设置1 Base64为1时生效,自动删临时生成的图片文件,不删除设置0 Count截取图数量,默认截一张,Delay指定延迟毫秒数开始,Interval多张时间隔毫秒数 FileName 指定截图文件名称,中文等需要先进行UrlEncode编码,可缺省使用默认值 CustomPath 指定截图保存路径,中文等需要先进行UrlEncode编码,不指定时由PathType决定 PathType 指定截图图片保存路径类型,0默认临时目录,1操作系统桌面 2当前登录用户我的图片目录 3中间件数据目录 Quality 截取质量 0代表原图,VLC的取值0-5,海康的取值0-2,数值越大,质量越低 请求1:{"req":"Player_SnapshotImg","rid":82,"para":[{"ID":1,"Type":3,"PathType":3,"Count":3,"Base64":1,"AutoDel":1,"Delay":1000,"Interval":200}]} 请求2: {"req":"Player_SnapshotImg","rid":82,"para":[{"ID":1,"Type":3,"Count":3,"CustomPath":"D:/Zorro","FileName":"TestFileName"}]} 分别返回:{"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窗口录像到文件 43) 指定ID窗口录像到文件,不支持同时录制多个 Type为录像方式(VLC或FFPlayer播放时有效) 0:VLC 1:ffmpeg 指定1时在播放小程序子目录存放ffmpeg程序 File为录像目标文件不指定时自动生成 如非本地全路径,默认使用中间件程序Data子目录作为根目录使用 Second为录制限时时间(秒),0代表由前端指定停止 Second为录制限时时间(秒),0代表由前端指定停止 Para为录像参数 使用VLC时默认为vcodec=h264 使用ffmpeg时默认为-vcodec libx264 指定Second时为录制指定秒数的录像,不指定时需要主动调用Player_StopRecord结束录像 {"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}} 45) 动态改变分屏数量或播放内容,海康私有协议播放需要指定服务器信息参数Server ShowType指定分屏数量,如果不变就不设置 ForceDestroy VLC4.0时默认1,其它时候默认0,指定0时切换播放不销毁原有控件 Play指定播放内容:Uri中如果有特殊字符= & 双引号或中文等,需要用URL编码处理后传递 Uri如非本地全路径,默认使用中间件程序Data子目录作为根目录使用 请求范例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,"ForceDestroy":0,"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为当前播放焦点窗口 48) 指定ID窗口回放指定文件,必须先登录 海康私有协议播放有效 Uri为服务器上的文件名称 ch0001代表第一个通道 ch0002代表第二个通道 以此类推 Reverse为1代表倒放 默认0按时间线播放 {"req":"Player_PlayBackByName","rid":88,"para":[{"ID":1,"Reverse":0,"Uri":"ch0001_00000000129000000"},{"ID":2,"Reverse":1,"Uri":"ch0002_00000000138000000"}]} 返回:{"ret":0,"rid":88,"ID":1,"data":{"Ret":0,"PlayID":1}} 和 {"ret":0,"rid":88,"ID":2,"data":{"Ret":0,"PlayID":2}} PlayID为当前播放ID 49) 指定ID窗口回放指定回放起始和结束时间,必须先登录 海康私有协议播放有效 Channel指定通道号 Begin和End为指定回放起始和结束时间,时间为UNIX时间戳,从1970年1月1号零点零分零秒开始 Reverse为1代表倒放 {"req":"Player_PlayBackByTime","rid":89,"para":[{"ID":1,"Channel":33,"Begin":1665100800,"End":1665187200,"Reverse":0},{"ID":2,"Channel":34,"Begin":1665100800,"End":1665187200,"Reverse":1}]} 返回:{"ret":0,"rid":89,"ID":1,"data":{"Ret":0,"PlayID":1}} 和 {"ret":0,"rid":89,"ID":2,"data":{"Ret":0,"PlayID":2}} PlayID为当前播放ID 50) 指定ID窗口回放控制 海康私有协议播放有效 必须先调用了回放Player_PlayBackByName或Player_PlayBackByTime接口 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帧 举例:请求暂停播放或恢复播放: {"req":"Player_PlayBackControl","rid":90,"para":[{"ID":1,"Type":3},{"ID":2,"Type":4}]} 举例:11调节音量 12改变回放进度等需要设置,Val控制值 {"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等时有效 51) 指定ID分屏窗口全屏,一次请求只能指定一个分屏窗口全屏 请求:{"req":"Player_Fullscreen","rid":91,"para":[{"ID":1}]} 分别返回:{"ret":0,"rid":91,"ID":1,"data":{"Ret":0}} 52) 取指定ID窗口播放速率,VLC播放引擎有效 请求:{"req":"Player_GetPlayRate","rid":92,"para":[{"ID":1},{"ID":2}]} 分别返回:{"ret":0,"rid":92,"ID":1,"data":{"Ret":0,"Rate":1.0}} 和 {"ret":0,"rid":92,"ID":2,"data":{"Ret":0,"Rate":2.0}} 53) 设置指定ID窗口播放速率,FFPlayer和VLC播放引擎有效 Rate 1算正常速度 FFPlayer引擎:取值范围0.1-2 VLC引擎:0.5半速, 2.0快一倍 请求:{"req":"Player_PutPlayRate","rid":93,"para":[{"ID":1,"Rate":1},{"ID":2,"Rate":2}]} 分别返回:{"ret":0,"rid":93,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":93,"ID":2,"data":{"Ret":0}} 54) 设置指定ID窗口字幕信息,VLC播放引擎及FFPlayer有效,举例: 指定的参数,需要的才设置,必须视频开始播放才能设置 Text 文字内容 Opacity 透明度 0-256 0完全透明 256完全不透明 Position(VLC播放可设置) 显示位置有center left right top bottom top-left top-right bottom-left bottom-right 不指定时由X和Y坐标决定 X 和 Y分别指定文字开始坐标 W和H分别指定文字显示宽度和高度 FFPlayer需要设置 Color 颜色 可用长整型(COLORREF),也可以用#000000这样的颜色值 Size 字体大小 Timeout 超时 请求1(VLC):{"req":"Player_MarqueePut","rid":94,"para":[{"ID":1,"Text":"Hello1","Position":"TOP","Timeout":0,"Color":"16777215","Opacity":128,"Refresh":1,"Size":50,"X":50,"Y":50},{"ID":2,"Text":"Hello2","Position":"TOP","Timeout":0,"Color":"16777215","Opacity":255,"Refresh":1,"Size":50,"X":50,"Y":50}]} 请求2(FFPlayer):{"req":"Player_MarqueePut","rid":94,"para":[{"ID":1,"Text":"Hello","Color":"16777215","Opacity":128,"Size":50,"X":50,"Y":50,"W":200,"H":50}]} 分别返回:{"ret":0,"rid":94,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":94,"ID":2,"data":{"Ret":0}} 55) 取指定ID窗口字幕信息,VLC播放引擎有效,举例: Text指定时获取文字信息 Position指定时获取位置信息 请求:{"req":"Player_MarqueeGet","rid":95,"para":[{"ID":1,"Text":1,"Position":1},{"ID":2}]} 分别返回:{"ret":0,"rid":95,"ID":1,"data":{"Ret":0,"Color":0,"Opacity":0,"Refresh":0,"Size":0,"Timeout":0,"X":0,"Y":"","Text":"","Position":""}} 和 {"ret":0,"rid":95,"ID":2,"data":{"Ret":0,"Color":0,"Opacity":0,"Refresh":0,"Size":0,"Timeout":0,"X":0,"Y":""}} 56) 控制指定ID窗口字幕,VLC播放引擎有效,举例: 请求:{"req":"Player_MarqueeControl","rid":96,"para":[{"ID":1,"Enable":1},{"ID":2,"Enable":0}]} 分别返回:{"ret":0,"rid":96,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":96,"ID":2,"data":{"Ret":0}} 57) 设置水印显示,VLC播放引擎有效 ID为窗口序号 File 水印文件路径,如有特殊符号请先进行UrlEncode,为空默认用小程序目录的Logo.png Code 水印图片BASE64编码,可替代File Position 显示位置有center left right top bottom top-left top-right bottom-left bottom-right,默认undefined未定义,显示位置有坐标X和Y控制 Delay 水印间隔图像时间为毫秒 0 - 60000 默认1000 Repeat 循环 水印动画的循环数量 -1继续(默认) 0关闭 Opacity 透明度 (数值介于 0(完全透明) 与 255(完全不透明,默认) X 水印X坐标 Y 水印Y坐标 {"req":"Player_PutLogoShow","rid":97,"para":[{"ID":1,"File":"VLC.png" ,"Delay":20,"Repeat":-1,"Opacity":128,"X":100,"Y":100},{"ID":2,"Position":" center ","Delay":100,"Repeat":-1,"Opacity":256,"X":200,"Y":0}]} 分别返回:{"ret":0,"rid":97,"ID":1,"data":{"Ret":0,"Enable":1}} 和 {"ret":0,"rid":97,"ID":2,"data":{"Ret":0,"Enable":0}} 58) 获取水印显示信息,VLC播放引擎有效 {"req":"Player_GetShowLogo","rid":98,"para":[{"ID":1},{"ID":2}]} 分别返回:{"ret":0,"rid":98,"ID":1,"data":{"Ret":0,"File":"","Position":"","Delay":0,"Repeat":0,"Opacity":0,"X":0,"Y":0,"Enable":0}} 和 {"ret":0,"rid":98,"ID":2,"data":{"Ret":0}} 59) 水印显示控制,VLC播放引擎有效 ID为窗口序号 Flag为1代表启用,0代表禁用 {"req":"Player_LogoControl","rid":99,"para":[{"ID":1,"Flag":1},{"ID":2,"Flag":0}]} 分别返回:{"ret":0,"rid":99,"ID":1,"data":{"Ret":0,"Enable":1}} 和 {"ret":0,"rid":99,"ID":2,"data":{"Ret":0,"Enable":0}} 60) 取指定ID窗口是否显示工具栏 请求:{"req":"Player_GetToolbar","rid":100,"para":[{"ID":1},{"ID":2}]} 分别返回:{"ret":0,"rid":100,"ID":1,"data":{"Ret":0,"Toolbar":1}} 和 {"ret":0,"rid":100,"ID":2,"data":{"Ret":0,"Toolbar":0}} 61) 设置指定ID窗口是否显示工具栏 请求:{"req":"Player_PutToolbar","rid":101,"para":[{"ID":1,"Toolbar":1},{"ID":2,"Toolbar":0}]} 分别返回:{"ret":0,"rid":101,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":101,"ID":2,"data":{"Ret":0}} 62) 取指定ID窗口是否静音 请求:{"req":"Player_GetSoundStatus","rid":102,"para":[{"ID":1},{"ID":2}]} 分别返回:{"ret":0,"rid":102,"ID":1,"data":{"Ret":0,"Mute":1}} 和 {"ret":0,"rid":102,"ID":2,"data":{"Ret":0,"Mute":0}} 63) 设置指定ID窗口是否静音 请求:{"req":"Player_PutSoundStatus","rid":103,"para":[{"ID":1,"Mute":1},{"ID":2,"Mute":0}]} 分别返回:{"ret":0,"rid":103,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":103,"ID":2,"data":{"Ret":0}} 64) 取指定ID窗口声音通道,VLC播放引擎有效 请求:{"req":"Player_GetAudioChannel","rid":104,"para":[{"ID":1},{"ID":2}]} 分别返回:{"ret":0,"rid":104,"ID":1,"data":{"Ret":0,"Channel":1}} 和 {"ret":0,"rid":104,"ID":2,"data":{"Ret":0,"Channel":2}} 65) 设置指定ID窗口声音通道,VLC播放引擎有效 声道定义: libvlc_AudioChannel_Error = -1, libvlc_AudioChannel_Stereo = 1, libvlc_AudioChannel_RStereo = 2, libvlc_AudioChannel_Left = 3, libvlc_AudioChannel_Right = 4, libvlc_AudioChannel_Dolbys = 5 请求:{"req":"Player_PutAudioChannel","rid":105,"para":[{"ID":1,"Channel":1},{"ID":2,"Channel":2}]} 分别返回:{"ret":0,"rid":105,"ID":1,"data":{"Ret":0,"Volume":50}} 和 {"ret":0,"rid":105,"ID":2,"data":{"Ret":0,"Volume":100}} 其中Volume为当前音量 66) 取指定ID窗口音轨数量,VLC播放引擎有效,举例: 请求:{"req":"Player_GetAudioTrackCount","rid":106,"para":[{"ID":1},{"ID":2}]} 分别返回:{"ret":0,"rid":106,"ID":1,"data":{"Ret":0,"Count":0}} 和 {"ret":0,"rid":106,"ID":2,"data":{"Ret":0,"Count":0}} 67) 取指定ID窗口音轨,VLC播放引擎有效 请求:{"req":"Player_GetAudioTrack","rid":107,"para":[{"ID":1},{"ID":2}]} 分别返回:{"ret":0,"rid":107,"ID":1,"data":{"Ret":0,"Track":1}} 和 {"ret":0,"rid":107,"ID":2,"data":{"Ret":0,"Track":1}} 68) 设置指定ID窗口音轨,VLC播放引擎有效 请求:{"req":"Player_PutAudioTrack","rid":108,"para":[{"ID":1,"Track":1},{"ID":2,"Track":1}]} 分别返回:{"ret":0,"rid":108,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":108,"ID":2,"data":{"Ret":0}} 69) 取指定ID窗口推送信息屏蔽掩码,举例: 请求:{"req":"Player_GetBlockFlag","rid":109,"para":[{"ID":1},{"ID":2}]} 分别返回:{"ret":0,"rid":109,"ID":1,"data":{"Ret":0,"BlockFlag":0}} 和 {"ret":0,"rid":109,"ID":2,"data":{"Ret":0,"BlockFlag":0}} 70) 设置指定ID窗口推送信息屏蔽掩码,举例: 由于以下几种信息通知比较多,所以增加阻止通知设置,比如阻止鼠标移动和进度通知,就设置9 1阻止鼠标移动通知 2阻止时间变化通知 4阻止缓存通知 8阻止进度百分比通知 请求:{"req":"Player_PutBlockFlag","rid":110,"para":[{"ID":1,"BlockFlag":0},{"ID":2,"BlockFlag":0}]} 分别返回:{"ret":0,"rid":110,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":110,"ID":2,"data":{"Ret":0}} 71) 设置指定ID窗口前进或后退帧数 正数前进,负数后退,最大可后退帧看FrameCache缓存数,VLC播放引擎有效 播放时指定了帧缓存参数FrameCache大于0时代表了启动按帧播放 请求:{"req":"Player_MoveFrame","rid":111,"para":[{"ID":1,"FrameCount":-10},{"ID":2,"FrameCount":5}]} 分别返回:{"ret":0,"rid":111,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":111,"ID":2,"data":{"Ret":0}} 72) 请求显示下一帧(毫秒) 执行后播放暂停,效果类似在VLC桌面程序中按快捷键E的效果,VLC及FFPlayer播放引擎有效 VLC播放引擎中FrameCount 为帧数量,不指定时默认为1 不支持回退操作,仅支持视频文件和回放流 FFPlayer播放引擎中FrameCount 为毫秒值,负值代表回退,正值代表向前,仅支持视频文件和回放流 {"req":"Player_NextFrame","rid":112,"para":[{"ID":1,"FrameCount":10},{"ID":2,"FrameCount":10}]} 分别返回:{"ret":0,"rid":112,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":112,"ID":2,"data":{"Ret":0}} 73) 取视频每秒传输帧数,举例: 请求:{"req":"Player_GetFPS","rid":113,"para":[{"ID":1},{"ID":2}]} 分别返回:{"ret":0,"rid":113,"ID":1,"data":{"Ret":0,"FPS":30}} 和 {"ret":0,"rid":113,"ID":2,"data":{"Ret":0,"FPS":30}} 74)HTTP同步方式上传视频到服务器或下载视频到本地,上传主要用于上传截图和录像到服务器保存 Type 1同步上传 0下载(支持异步,设置Asyn为1) Agent、Cookie及Auth Cookie可传浏览器中的Cookie或通过Auth授权验证上传权限,默认为空,非空时需要先做UrlEnocde编码 Local 上传文件本地路径或下载文件保存路径,如果不指定默认用当前打开文档,需要做UrlEncode编码 Url 上传或下载的地址,需要做UrlEncode编码 Type为1时,可增加参数Para,对应POST数据包中需要传递的参数param 默认上传文件名为upfile,否则可通过NodeName设置自己的文件参数名称 Type为0时,可增加参数MD5及FileSize,下载文件的哈希值及大小,用于校验下载文件的完整性,可默认空或0 {"req":"Player_NetFile","rid":101,"para":{"Type":1,"Agent":"","Cookie":"","Auth":"","Para":"","Local":"","Url":"http://zorrosoft.com/wp-admin/admin-ajax.php"}} 返回:{"ret":0,"rid":35,"data":{"Ret":"0","Info":{}}} Info为上传到服务器返回的信息 75) 指定ID窗口检索录像文件,必须先登录 海康私有协议播放有效 Channel指定通道号 Begin和End为指定回放起始和结束时间,时间为UNIX时间戳,从1970年1月1号零点零分零秒开始 StreamType 流类型 0-同一个时间段只返回一种录像,优先级顺序为:主码流、子码流、三码流,1-子码流,2-三码流,3-主码流,254-双码流搜索(优先返回主码流录像,没有主码流录像时返回子码流录像) FileType 文件类型 {"req":"Player_SearchFile","rid":115,"para":[{"ID":1,"Channel":33,"Begin":1665100800,"End":1665187200,"StreamType":0},{"ID":2,"Channel":34,"Begin":1665100800,"End":1665187200,"StreamType":1}]} 返回:{"ret":0,"rid":115,"ID":1,"data":{"Ret":0,"SID":1}} 和 {"ret":0,"rid":115,"ID":2,"data":{"Ret":0,"SID":2}} SID为当前搜索序号,最终搜索结果通过事件返回,事件包中包含SID参数 76) 指定ID窗口根据名称下载录像文件,必须先登录 海康私有协议播放有效 Uri为服务器上的文件名称 ch0001代表第一个通道 ch0002代表第二个通道 以此类推 File为录像目标文件不指定时自动生成 如非本地全路径,默认使用中间件程序Data子目录作为根目录使用 {"req":"Player_DownVideoByName","rid":116,"para":[{"ID":1,"Uri":"ch0001_00000000129000000","File":"D:/Zorro/ch0001_00000000129000000.mp4"},{"ID":2,"Uri":"ch0002_00000000138000000","File":"D:/Zorro/ch0002_00000000138000000.mp4"}]} 返回:{"ret":0,"rid":116,"ID":1,"data":{"Ret":0,"DID":1}} 和 {"ret":0,"rid":116,"ID":2,"data":{"Ret":0,"DID":2}} DID为下载序号,下载进度通知中包含此参数 77) 指定ID窗口根据时间下载录像文件,必须先登录 海康私有协议播放有效 Channel指定通道号 Begin和End为指定回放起始和结束时间,时间为UNIX时间戳,从1970年1月1号零点零分零秒开始 {"req":"Player_DownVideoByTime","rid":117,"para":[{"ID":1,"Channel":33,"Begin":1665102256,"End":1665104363,"File":"D:/Zorro/ch0001_00000000095000000.mp4"},{"ID":2,"Channel":34,"Begin":1665104363,"End":1665108028,"File":"D:/Zorro/ch0001_00000000097000000.mp4"}]} 返回:{"ret":0,"rid":117,"ID":1,"data":{"Ret":0,"DID":1}} 和 {"ret":0,"rid":117,"ID":2,"data":{"Ret":0,"DID":2}} DID为下载序号,下载进度通知中包含此参数 78) 指定ID窗口旋转画面 FFPlayer播放有效 Angle指定顺时针的旋转角度 {"req":"Player_Rotation","rid":118,"para":[{"ID":1,"Angle":90},{"ID":2,"Angle":190}]} 返回:{"ret":0,"rid":118,"ID":1,"data":{"Ret":0,"Angle":30}} 和 {"ret":0,"rid":118,"ID":2,"data":{"Ret":0,"Angle":60}} 返回Angle为当前角度 79) 指定ID窗口局部显示画面 FFPlayer播放有效 X和Y分别指定局部显示的坐标 W和H指定局部显示的宽度和高度,高度和宽度都设置0代表取消局部显示 {"req":"Player_LocalShow","rid":119,"para":[{"ID":1,"X":50,"Y":50,"W":200,"H":200},{"ID":2,"X":50,"Y":50,"W":300,"H":300}]} 返回:{"ret":0,"rid":119,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":119,"ID":2,"data":{"Ret":0}} 返回Angle为当前角度 80) 指定ID窗口叠加网页中的渲染内容,Widows 8及以上版本操作系统正常支持,本机需要安装Microsoft Edge WebView2 Runtime Url为透明网页地址,如有特殊符号请先进行UrlEncode,设置为空字符串代表取消叠加 Alpha 透明度(0-255) 默认255不透明,Windows 7及以下版本系统不支持透明 Rect节点设置叠加窗口位置和大小,不设置时代表全部区域,E代表边距默认1,X/Y/W/H分别代表叠加窗口在分屏窗口中显示的起始点和宽高,P为显示位置类型,大于0时替代X和Y,1左上 2右上 3左下 4右下 {"req":"Player_FloatWebInfo","rid":120,"para":[{"ID":1,"Url":"https://output.jsbin.com/dopavun"},{"ID":2,"Alpha":70,"Url":"https://output.jsbin.com/dopavun"}]} {"req":"Player_FloatWebInfo","rid":120,"para":[{"ID":1,"Url":"https://output.jsbin.com/dopavun","Rect":{"X":0,"Y":0,"P":0,"W":300,"H":300}}]} 返回:{"ret":0,"rid":120,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":120,"ID":2,"data":{"Ret":0}} 81) 指定ID窗口叠加网页注入脚本运行 Script为脚本内容,请先进行UrlEncode,设置为空字符串代表取消叠加 Init 初始化 {"req":"Player_FloatWebInjectScript","rid":121,"para":[{"ID":1,"Init":0,"Script":"window.getComputedStyle(document.body).backgroundColor"},{"ID":2,"Init":0,"Url":"if%20(window.parent%20!%3D%3D%20window.top)%7B%0A%09delete%20window.open%3B%0A%7D"}]} 返回:{"ret":0,"rid":121,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":121,"ID":2,"data":{"Ret":0}} 82) 指定多个同类视频文件进行合并,合并结果通过事件通知返回 Type 合并引擎 1:FFMpeg Src 需要合并的原视频路径数组 文件名及路径需要先做UrlEncode编码 Out 合并生成目标 如设置了需要先做UrlEncode编码,没设置自动在默认路径生成一个mp4视频文件名 举例: 请求:{"req":"Player_MergeVideo","rid":122,"para":{"Type":1,"Src":["d:/Zorro/test5.mp4","d:/Zorro/test6.mp4"],"Out": "dest.mp4"}} 返回:{"ret":0,"rid":122,"data":{"Ret":0}} 事件通知合并结果 aid:对应Player_MergeVideo的请求rid Size:合并目标视频文件大小 PID:合并进程 File:合并最终形成的目标视频文件 {"event":"Player_MergeOK","aid":122,"PID":0,"data":{"Ret":0,"File":"dest.mp4","Size":0}} 83) 指定分屏添加轮播内容,一般用于大视频被切片时依次轮播 比如1分屏正在播放Url地址内容(要求是文件或回放视频),当播放结束时马上切换到轮播内容,切换时没有延迟 Uri中如果有特殊字符= & 双引号或中文等,需要用URL编码处理后传递 Uri如非本地全路径,默认使用中间件程序Data子目录作为根目录使用 请求:{"req":"Player_AddPreparePlay","rid":123,"para":[{"ID":1,"Uri":"d:/zorro/play.mp4","Name":"PreparePlay","Option":"Link=1 PlayEngine=3"}]} 返回:{"ret":0,"rid":123,"data":{"Ret":0}} 84) 设置指定分屏窗口是否禁用双击全屏功能 DisableDBFull 设置1时禁用,默认不禁用 {"req":"Player_PutDisableDBFull","rid":104,"para":[{"ID":1,"DisableDBFull":1},{"ID":2,"DisableDBFull":0}]} 分别返回:{"ret":0,"rid":104,"ID":1,"data":{"Ret":0}} 和 {"ret":0,"rid":104,"ID":2,"data":{"Ret":0}} 14) 叠加网页导航结果通知 {"event":"Player_WebNavResult","ID":1,"rid":1,"aid":1,"data":{"Result":""}]}} Result UrlEncode后的请求结果 15) 叠加网页注入脚本结果通知 {"event":"Player_WebScriptResult","ID":1,"rid":1,"aid":1,"data":{"Result":""}]}} Result UrlEncode后的请求结果 5、海康视频网页播放器接收的通知: 这些通知必须通过WebSocket连接到此小程序侦听的端口才能接收到。 A、小程序: 1) Selected 选中分屏窗口序号通知 ID是分屏序号 aid是播放实例ID 下同 {"event":"Player_Selected","ID":1,"rid":1,"data":{}} 2) FullScreen 分屏窗口切换全屏通知 {"event":"Player_FullScreen","ID":1,"rid":1,"data":{}} 3) 录像结束通知(限时录制时发出) ID 为窗口序号 PID为录像ID Size录像文件大小 File录像实际全路径 {"event":"Player_StopRecord","ID":1,"rid":1,"data":{"Ret":0,"PID":1,"File":"D:/Zorro/test.mp4","Size":321}} 4) 登录状态通知,播放MP4等本地文件无效 {"event":"Player_LoginStatus","ID":1,"rid":1,"data":{"LID":1,"Status":0,"Desc":"登录失败"}} 5) 异常通知 Type 0x8001语音对讲异常 0x8003网络预览异常 0x8005预览时重新连接 0x8010回放异常 0x8015预览时重连成功 {"event":"Player_Exception","ID":1,"rid":1,"data":{"Type":1}} 6) 海康SDK错误通知 SDK支持库还未安装 {"event":"Player_SDKErr","ID":1,"rid":1,"data":{}} 7) 播放事件通知 Type事件类型 Val事件相关的值 Type包含的值含义如下 5(libvlc_MediaStateChanged) 视频状态变化 1打开 2缓冲数据 3正在播放 4播放暂停 5停止播放 6播放到尾部 7播放错误 258(libvlc_MediaPlayerOpening) 播放内容打开中... 259(libvlc_MediaPlayerBuffering) 缓冲数据中... Val中包含缓冲数据的长度 260(libvlc_MediaPlayerPlaying) 播放中 261(libvlc_MediaPlayerPaused) 播放暂停 262(libvlc_MediaPlayerStopped) 播放停止 263(libvlc_MediaPlayerForward) 播放快进 264(libvlc_MediaPlayerBackward) 播放快退 266(libvlc_MediaPlayerEncounteredError) 播放遇到错误 267(libvlc_MediaPlayerTimeChanged) 播放时间变化 Val对应最新的时间 268(libvlc_MediaPlayerPositionChanged) 播放位置变化 Val对应最新的位置,这个用来做播放进度展示,*100就是百分比 273(libvlc_MediaPlayerLengthChanged) 播放长度变化 Val对应最新的长度 283(libvlc_MediaPlayerAudioVolume) 播放音量通知 Val对应最新的音量 {"event":"Player_VlcEvent","ID":1,"rid":1,"data":{"Type":1,"Val":0}} 8) 是否静音通知 Mute为1是静音 0非静音 Volume音量0-100 {"event":"Player_SoundStatus","ID":1,"rid":1,"data":{"Mute":1,"Volume":80}} 9) 帧播放通知 CacheCount当前缓存帧数 CurDraw当前绘制帧在缓存中的序号 {"event":"Player_FramePlaying","ID":1,"rid":1,"data":{"CacheCount":30,"CurDraw":0}} 10) 音频信息通知 Format格式 Rate速率 Channel通道数量 {"event":"Player_AudioInfo","ID":1,"rid":1,"data":{"Format":"S16N","Rate":8000,"Channel":2}} 11) 音柱通知 Left左声道声音大小 Right右声道声音大小 {"event":"Player_AudioWave","ID":1,"rid":1,"data":{"Left":30,"Right":20}} 12) 海康私有协议搜索硬盘录像机上的录像结果通知 {"event":"Player_SearchResult","ID":1,"rid":1,"data":{"SID":1,"Info":[{"Name":"ch0001_00000000094000100","Size":1053565500,"FType":0,"SType":0,"Locked":0,"STime":1665100588,"ETime":1665102259},{"Name":"ch0001_00000000095000000","Size":1065176994,"FType":0,"SType":0,"Locked":0,"STime":1665102256,"ETime":1665104363},{"Name":"ch0001_00000000097000000","Size":1065309215,"FType":0,"SType":0,"Locked":0,"STime":1665104363,"ETime":1665108028}]}} FType 文件类型 SType流类型 Locked是否锁定 STime流开始时间 ETime流结束时间 13) 海康私有协议下载硬盘录像机上的录像进度通知 {"event":"Player_DownPos","ID":1,"rid":2,"data":{"DID":1,"Pos":100}} Pos为100时下载结束 B、PluginOK支持的事件通知: 1) 小程序是否响应了热键全屏 {"event":"Player_FullScreen","rid":1,"data":{"FullScreen":0}} FullScreen为当前是否全屏标记 2) Wrl_AppletExit 小程序退出通知 {"event":"Wrl_AppletExit","data":{"ID":1}} ID小程序实例ID 6、其它 请求参数的JSON数据包,请确保是UTF-8无签名的编码。 更多接口请求说明,请参考安装目录中的文档TestWrl.txt、SDK包中的“PluginOK开发者手册.pdf”及“PluginOK中间件安全解决方案.pdf”。 如还有疑问请直接联系客服 加微信:ZorroSoft,或加QQ群:23126938