海康网页播放小程序(支持多路):基于跨浏览器的原生小程序系统-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及以上版本使用。 本小程序具有如下优点: 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 前端集成可参考以上测试网页进行,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的: 或者直接用 另外需要嵌入用到的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设定的值做修正 Web:播放配置(新增方式),可代替Url使用,Flag值+64使用此配置,此命令中必须指定Left、Top、Width、Height的值 Open :启动后第一个窗口自动播放的流地址或本地多媒体文件路径,斜杠\替换成/再传,也可以在Web中指定 注意:Open、Url、Web中如果有特殊字符= & 双引号或中文等,需要用URL编码处理后传递 如非本地全路径,默认使用中间件程序Data子目录作为根目录使用 举例: 自动识别当前浏览器指定位置和大小启动: {"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参数): {"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"}]}} 启动后会先后收到三个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)、请求安装海康网页播放小程序 请在测试网页输入框中,输入如下请求,然后点击发送,完成安装: {"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"}} 启动安装后,会不断收到安装进度直到安装结束。 2)、请求升级海康网页播放小程序: {"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"}} 以上安装和升级的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等文件播放有效 请求:{"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窗口当前是否异步播放 0私有协议播放有效 请求:{"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窗口是否异步播放,调用播放前设置 0私有协议播放有效 请求:{"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 27) 指定ID窗口播放指定通道、本地文件或RTSP流地址,0私有协议播放需要先登录 指定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}} {"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}} 34) 指定ID窗口进行云台控制,需要先调用播放,0私有协议播放有效 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窗口连接信息,0私有协议播放有效 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窗口可用对讲通道,0私有协议播放有效,不支持对讲的设备调用返回值无效 请求:{"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":""}} 38) 开始指定ID窗口对讲 0私有协议播放有效 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最大音量 0私有协议播放有效 请求:{"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最大音量 0私有协议播放有效 请求:{"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窗口对讲请求停止 0私有协议播放有效 请求:{"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多张时间隔毫秒数 PathType 指定截图图片保存路径类型,0默认临时目录,1操作系统桌面 2当前登录用户我的图片目录 3中间件数据目录 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}]} 分别返回:{"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窗口录像到文件 File为录像目标文件不指定时自动生成 如非本地全路径,默认使用中间件程序Data子目录作为根目录使用 Second为录制限时时间(秒),0代表由前端指定停止 {"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) 动态改变分屏数量或播放内容,0私有协议播放需要指定Server参数 ShowType指定分屏数量,如果不变就不设置 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,"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为服务器上的文件名称 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 49) 指定ID窗口回放指定文件,必须先登录 0私有协议播放有效 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 50) 指定ID窗口回放控制 0私有协议播放有效 必须先调用了回放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帧 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等时有效 51) 指定ID分屏窗口全屏,一次请求只能指定一个分屏窗口全屏 请求:{"req":"Player_Fullscreen","rid":91,"para":[{"ID":1}]} 分别返回:{"ret":0,"rid":91,"ID":1,"data":{"Ret":0}} 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}} 7) 海康SDK错误通知 SDK支持库还未安装 {"event":"Player_SDKErr","ID":1,"data":{}} 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}} 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