Flash网页播放器:基于跨浏览器的原生小程序系统-PluginOK(牛插)中间件( https://github.com/wangzuohuai/WebRunLocal )网络高级版开发,底层调用Adobe公司的ActiveX控件Flash.ocx实现播放。最低可用在Chrome 41、Firefox 50、Edge 80(Chromium内核)、360极速/安全、IE 8、Opera、Electron、Vivaldi、Brave、QQ、搜狗等浏览器,也兼容运行于这些浏览器的最新版本。 1、牛插(PluginOK)中间件的安装: 1)、如果是exe的安装程序,请直接运行安装; 2)、如果是绿色版的程序包,请解压到磁盘某个目录后,双击“InstallWrl.bat”进行安装; 3)、安装完成时会启动PluginOK中间件服务,在安装目录下的Data子目录有ZbaService.txt日志文件输出运行情况。 2、Flash网页播放器控制相关接口: 说明:以下功能请通过Web Socket连接PluginOK主服务(ws://localhost:83?sid=12345&flag=1)后可执行,如默认侦听端口不是83(关于如何配置侦听端口,请参考SDK包中的文档“PluginOK开发者手册.pdf”),请在连接地址中指定端口号进行连接。 HTTP网页在线测试:http://local.zorrosoft.com/flashfull.html HTTPS网页在线测试:https://local.zorrosoft.com/flashframe.html 如还需兼容IE浏览器使用,网络版测试网页中 的CLSID需要替换为:21ADE2E6-B4DD-4F3E-8BD5-9DDAD1785F3A 前端集成可参考以上测试网页进行,需要嵌入用到的JS脚本,脚本程序是完全开源的。 1)、请求启动Flash网页播放器: Type为浏览器类型,传0自动判断(前提是当前浏览器已启动并显示在最前端,Flag指定当前页加载时必须是0) 可强制指定浏览器类型Type(1代表IE 2代表Chrome 4代表Firefox 8代表Opera 16代表Edge(Chromium内核) 20代表Electron 32代表360极速浏览器 33代表360安全浏览器 34代表360企业安全浏览器 50代表QQ浏览器 60代表搜狗浏览器) Title:网页标题中的关键词 Url:加载网页组件所在的网页实际地址,在网页中指定小程序的显示位置和大小,不建议使用了,建议改用Web参数 Flag掩码标记:1指定新标签加载(1和16都不指定时为当前页加载) 2小程序显示窗口边框 4不自动裁剪越界窗口 8自动适配网页高度和宽度显示 128防截屏 Web:可自定义的JSON配置 Flag包含64时可替换Url参数使用 IframeX和IframeY分别为iframe嵌套的横竖偏移修正坐标 BarW和BarH分别是网页右侧和底部预留区域,ScrollTop为顶部滚动预留高度 小程序实际显示首先会基于Url或Web中指定的坐标和大小,再根据IframeX、IframeY、BarW、BarH设定的值做修正 Open:为需要播放的多媒体路径,磁盘目录斜杠用/ 注意:Open、Web和Url如果有特殊字符= & 双引号或中文等,需要用URL编码处理后传递 举例: 自动识别当前浏览器指定位置和大小启动: {"req":"Wrl_AppletStart","rid":1,"para":{"Type":"0","Title":"Flash播放小程序","NodeName":"FlashApplet","PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","Flag":66,"Left":20,"Top":20,"Width":480,"Height":320,"IframeX":0,"IframeY":210,"BarW":0,"BarH":0,"Version":"0","Web":[],"Open":"http://zorrosoft.com/Files/test.swf"}} 自动识别当前浏览器自动适配网页大小启动: {"req":"Wrl_AppletStart","rid":1,"para":{"Type":"0","Title":"Flash网页","NodeName":"FlashApplet","PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","Flag":72,"Left":0,"Top":0,"Width":0,"Height":0,"IframeX":0,"IframeY":0,"Version":"0","Zoom":100,"ScrollTop":0,"Web":[],"Open":"http://zorrosoft.com/Files/test.swf"}} 当前页指定位置自动适配网页加载测试 http://local.zorrosoft.com/flashframe.html 启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":2}} 代表小程序WS侦听服务就绪 B、{"event":"Wrl_Listen","aid":2,"rid":1,"data":{"SID":"123","PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","port":996}} 返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如新播放一个Flash。 代表小程序创建成功,返回ID为当前小程序运行实例ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 C、{"event":"Wrl_AppletOK","aid":2,"rid":1,"data":{"SID":"123","PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","Port":996}} 2)、请求控制Flash网页播放器: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 ID为Wrl_FlashApplet启动小程序时返回JSON中的ID值,Code代表控制类型掩码:1关闭 2全屏显示 4自动隐藏 8还原显示 16自动适配网页高度和宽度显示模式切换 32强制隐藏。其中全屏显示2,可直接通过热键ESC或取消,4和32隐藏后可通过8恢复显示 {"req":"Wrl_AppletControl","rid":2,"para":{"ID":"1","Code":4}} 3)、请求滚动网页中Flash网页播放器: 当前端截取到网页滚动通知时,需要调用此接口实现小程序和网页的滚动联动 ID为启动小程序时返回JSON中的ID值 Code为滚动方向1是水平直,2是垂直,3是同时 Left为横向滚动条位置,Top为纵向滚动条位置 {"req":"Wrl_AppletScroll","rid":3,"para":{"ID":"1","Code":2,"Left":0,"Top":100}} 4)、请求改变网页中Flash网页播放器显示位置或大小: 当前端网页显示区域缩放时,可动态修改小程序的显示位置或大小 ID为Wrl_FlashApplet启动小程序时返回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_FlashApplet启动小程序时返回的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":".jpg"}} 8)、请求缩放内嵌网页小程序,用于浏览器网页按比例缩放,一般不需要处理: ID为启动小程序时返回JSON中的ID值,不指定Scale时,获取当前小程序所用的缩放百分比,一般和系统缩放比例一致 {"req":"Wrl_AppletScale","rid":11,"para":{"ID":1,"Scale":120}} 3、小程序安装、升级、卸载 1)、请求安装Flash网页播放器 请在测试网页输入框中,输入如下请求,然后点击发送,完成安装: {"req":"Plugin_Install","rid":1,"para":{"Name":"Flash网页播放器","PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","Date":"2024-03-13","Desc":"PluginOK之上跨浏览器的Flash Player网页小程序,支持在Chrome、Edge、Firefox、IE、Oprea、360、QQ等最新版本浏览器网页中内嵌使用","DownAddr":"http://local.zorrosoft.com/Files/Net/FlashWebPlayer.pid","MD5":"288C419861DF2D381478742726F85367","Version":"2.2.13.2","Size":753664,"HideIns":0,"Type":8,"Cookie":"","Auth":"","TK":"553F1C6F5FCAB69C7CF56AB923685BD16AA3D1639A464B1379D19A1113E5CBEC7886C69FBF39754923D86198B1081BBA30A1EDB294B5E873F9AD7E7D91AE06D4644F345D5E7E4FB8C0A56B4845F97117BA3243F916A584777AC08275101B7EC90870A4964054A06E7C17D656B1C89077E478D3EAA498F0A1D718B85CD8711569DA3B3994D567BE3610A2EDCCDBE885BADBF9936D314EE473965085D923744376D92F692DD47F8BBA5998D2E0E24425F647560BA3BFA507C060C4DB823248F75DE26307668E993883503496A11496DAFD7C3A8C9360CF4EDAE7BF02705887ECD1AACEEF22869809BF8B2429471FB94510CE201C1826EC5C1D788F53A574272BF4"}} 启动安装后,会不断收到安装进度直到安装结束。 2)、请求升级Flash网页播放器: {"req":"Plugin_Update","rid":1,"para":{"Name":"Flash网页播放器","PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","Date":"2024-03-13","Desc":"PluginOK之上跨浏览器的Flash Player网页小程序,支持在Chrome、Edge、Firefox、IE、Oprea、360、QQ等最新版本浏览器网页中内嵌使用","DownAddr":"http://local.zorrosoft.com/Files/Net/FlashWebPlayer_Update.pid","MD5":"828AF9D86F141B66FF13BB3C499A2EDB","Version":"2.2.13.2","Size":753664,"HideIns":0,"Type":8,"Cookie":"","Auth":"","TK":"3C304B910E4033B4A29C3EE52427D3927FE97C4BF57B613241334A6A55529341D9AF59BCE2973FB327BA40455494584BB86D45D47AED281E1A2926C8FE9438913252FB0CA5B2C5D404338C3E3A334D6F09B16D3DF4B557B1A4202E1F4F8088B1161DBAA08EC741351E08F3A2F857B12CFE49FDD51C6D1FED552950B19F25A1AAC8B81FB3AC22CC18B197382384539E63A1981A8B7E93A58CEAA28D12771C2AB22C1A8384E540B011B2D5DF40E77BC634552FE6C2109605922994A52AB5F1D55F511A4E668582FA093765C52BA8F3DF6BB79868FBD89EEDF0CB15022DDF38EEB7EF10E57E9B61DF6899EC8F18E339CF8845AE150BE23C8C981964417CBEDF00D7"}} 以上安装和升级的JSON请求包,可能因版本升级导致内容不同,如遇安装或升级时报错,请联系客服获取最新的请求包。 3)、请求卸载Flash网页播放器: 正式版需要添加TK校验,具体规则请参考SDK包中文档“PluginOK中间件安全解决方案.doc”,可在SDK包中的打包程序ZbaPackage.exe的中间件维护生成带TK的请求。 {"req":"Plugin_Remove","rid":3,"para":{"PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","Type":8}} 4、Flash Player小程序转调用ActiveX接口,先根据Wrl_FlashApplet请求启动后返回的端口号,新建立一个WebSocket连接后可执行如下指令: A、常用功能请求: 1) 当前是否在播放 请求:{"req":"Flash_IsPlaying","rid":50,"para":{}} 返回:{"ret":0,"rid":50,"data":{"IsPlaying":"1"}} ret为请求返回值,0正常,非零不正常,不正常时请取和ret同级的错误描述err,下同 IsPlaying为1代表正常播放 2) 设置是否循环播放 请求:{"req":"Flash_PutLoop","rid":51,"para":{"Loop":"1"}} 返回:{"ret":0,"rid":51,"data":{"Ret":"0"}} Ret为调用ActiveX对应函数返回值,0代表正常 3) 获取是否循环播放 请求:{"req":"Flash_GetLoop","rid":52,"para":{}} 返回:{"ret":0,"rid":52,"data":{"Loop":"1"}} Loop返回是否循环播放,1代表循环 4) 设置播放内容 请求:{"req":"Flash_PutMovie","rid":53,"para":{"Movie":"http://zorrosoft.com/Files/test.swf"}} Movie为播放路径,如果是本地文件或非英文的,本地路径斜杠\替换为反斜杠/,非英文的需要URL编码后再传递 返回:{"ret":0,"rid":53,"data":{"Ret":"0"}} Ret为调用ActiveX对应函数返回值,0代表正常 5) 获取循环内容 请求:{"req":"Flash_GetMovie","rid":54,"para":{}} 返回:{"ret":0,"rid":54,"data":{"Movie":"http://zorrosoft.com/Files/test.swf"}} Movie返回循环内容 6) 请求播放执行 请求:{"req":"Flash_Play","rid":55,"para":{}} 返回:{"ret":0,"rid":55,"data":{"Ret":"0"}} Ret为调用ActiveX对应函数返回值,0代表正常 7) 请求播放停止 请求:{"req":"Flash_Stop","rid":56,"para":{}} 返回:{"ret":0,"rid":56,"data":{"Ret":"0"}} Ret为调用ActiveX对应函数返回值,0代表正常 8) 请求播放回退 请求:{"req":"Flash_Back","rid":57,"para":{}} 返回:{"ret":0,"rid":57,"data":{"Ret":"0"}} Ret为调用ActiveX对应函数返回值,0代表正常 9) 请求播放前进 请求:{"req":"Flash_Forward","rid":58,"para":{}} 返回:{"ret":0,"rid":58,"data":{"Ret":"0"}} Ret为调用ActiveX对应函数返回值,0代表正常 10) 请求Flash的版本 请求:{"req":"Flash_Version","rid":59,"para":{}} 返回:{"ret":0,"rid":59,"data":{"Ret":"0"}} Version返回版本信息 11) 请求退出小程序 未连接到小程序侦听WS端口时直接关闭到中间件的WS连接即可 请求:{"req":"Flash_Exit","rid":60,"para":{}} 无返回 B、其他功能请求: 1) 请求获取Flash参数 请求:{"req":"Flash_GetFlashVars","rid":70,"para":{}} 返回:{"ret":0,"rid":70,"data":{"FlashVars":""}} FlashVars返回参数 2) 请求设置Flash参数 请求:{"req":"Flash_PutFlashVars","rid":71,"para":{"FlashVars":"Test"}} 返回:{"ret":0,"rid":71,"data":{"Ret":""}} Ret为调用ActiveX对应函数返回值,0代表正常 3) 请求获取参数 请求:{"req":"Flash_GetVariable","rid":72,"para":{"Name":"Test"}} 返回:{"ret":0,"rid":72,"data":{"Variable":""}} FlashVars返回参数 4) 请求设置参数 请求:{"req":"Flash_PutVariable","rid":73,"para":{"Name":"Test","Value":"1"}} 返回:{"ret":0,"rid":73,"data":{"Ret":""}} Ret为调用ActiveX对应函数返回值,0代表正常 5) 请求获取就绪状态 请求:{"req":"Flash_GetReadyState","rid":74,"para":{}} 返回:{"ret":0,"rid":74,"data":{"ReadyState":""}} ReadyState返回就绪状态 6) 请求获取总帧数 请求:{"req":"Flash_GetTotalFrames","rid":75,"para":{}} 返回:{"ret":0,"rid":75,"data":{"TotalFrames":""}} ReadyState返回就绪状态 7) 请求获取加载百分比 请求:{"req":"Flash_PercentLoaded","rid":76,"para":{}} 返回:{"ret":0,"rid":76,"data":{"PercentLoaded":""}} PercentLoaded返回加载百分比 8) 请求获取播放品质 请求:{"req":"Flash_GetQuality","rid":77,"para":{}} 返回:{"ret":0,"rid":77,"data":{"Quality":""}} Quality返回播放品质 9) 请求设置播放品质 请求:{"req":"Flash_PutQuality","rid":78,"para":{"Quality":1}} 返回:{"ret":0,"rid":78,"data":{"Ret":""}} Ret为调用ActiveX对应函数返回值,0代表正常 10) 请求获取背景色 请求:{"req":"Flash_GetBackgroundColor","rid":79,"para":{}} 返回:{"ret":0,"rid":79,"data":{"BackgroundColor":""}} BackgroundColor返回播放品质 11) 请求设置背景色 请求:{"req":"Flash_PutBackgroundColor","rid":80,"para":{"BackgroundColor":-1}} 返回:{"ret":0,"rid":80,"data":{"Ret":""}} Ret为调用ActiveX对应函数返回值,0代表正常 如您需要更多的接口,请联系我们。 5、Flash网页播放器接收的通知: 这些通知必须通过WebSocket连接到此小程序侦听的端口才能接收到。 A、ActiveX事件: 1) ReadyState状态变化事件通知 {"event":"Flash_ReadyStateChange","data":{"State":0}} State为状态值 2) Progress进度事件通知 {"event":"Flash_Progress","data":{"Percent":0}} Percent为进度百分比 3) FSCommand执行事件通知 {"event":"Flash_FSCommand","data":{"Command":"","Args":""}} Command为请求命令,Args为参数 4) Call事件通知 {"event":"Flash_Call","data":{"Request":""}} Request为请求 B、PluginOK支持的事件通知: 1) Flash_FullScreen 小程序是否响应了热键全屏 {"event":"Flash_FullScreen","data":{"FullScreen":0}} FullScreen为当前是否全屏标记 2) Wrl_AppletExit 小程序退出通知 {"event":"Wrl_AppletExit","data":{"ID":1}} 6、其它 请求参数的JSON数据包,请确保是UTF-8无签名的编码。 更多接口请求说明,请参考安装目录中的文档TestWrl.txt和SDK包中的“PluginOK开发者手册.pdf”。 如还有疑问请直接联系客服 加微信:ZorroSoft,或加QQ群:23126938