开发文档

主页 > 开发文档 > 猿大师中间件Flash Player内嵌网页小程序开发文档

猿大师中间件Flash Player内嵌网页小程序开发文档

栏目:开发文档   日期:2021-04-16 21:42:19   浏览

猿大师中间件Flash Player内嵌网页小程序开发原理:
 
猿大师中间件Flash Player内嵌网页小程序是基于猿大师中间件网络版开发,底层调用Adobe公司的ActiveX控件Flash.ocx实现播放。最低可用在Chrome 41、Firefox 50、Edge 80(Chromium内核)、360极速/安全、IE 8、Oprea 36、QQ、搜狗等浏览器,也兼容运行于这些浏览器的最新版本。
 
1.猿大师中间件Flash Player内嵌网页小程序的安装步骤:
 
1)、如果是exe的安装程序,请直接运行安装;
2)、如果是绿色版的程序包,请解压到磁盘某个目录后,双击“InstallWrl.bat”进行安装;
3)、安装完成时会启动猿大师中间件服务,在安装目录下的Data子目录有ZbaService.txt日志文件输出运行情况。
 
2.猿大师中间件Flash Player内嵌网页小程序的控制相关接口:
 
说明:以下功能请通过Web Socket连接猿大师主服务(ws://localhost?sid=12345&flag=1)后可执行,如默认侦听端口不是80(关于如何配置侦听端口,请参考SDK包中的文档“猿大师开发者手册.doc”),请在连接地址中指定端口号进行连接。
 
HTTP网页在线测试:http://test.yuanmaster.com/flashfull.html       
HTTPS网页在线测试:https://test.yuanmaster.com/flashframe.html
 
前端集成可参考以上测试网页进行,HTML网页中需要嵌入以下类似代码;
A、标记小程序的显示位置和大小
.FlashApplet {
            margin: 20px 0 0 20px;
            width: 480px;
            height: 320px;
            border: 1px solid blue;
        }
或者
.FlashApplet {
            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="FlashApplet" id="FlashApplet" src="FlashApplet3.html" frameborder="0" align="left" width="550" height="540" scrolling="no">
或者直接用
<div id="FlashApplet" class="FlashApplet"</div>
 
另外需要嵌入用到的JS脚本,脚本程序是完全开源的。
 
1)、请求启动Flash Player内嵌网页小程序:
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自动适配网页高度和宽度显示  64根据标题避免重复加载相同的小程序
IframeX和IframeY分别为iframe嵌套的横竖偏移修正坐标
BarW和BarH分别是网页右侧和底部预留区域
小程序实际显示首先会基于网页中指定的坐标和大小,再根据IframeX、IframeY、BarW、BarH设定的值做修正
Url:加载小程序所在的网页实际地址
Open:为需要播放的多媒体路径,磁盘目录斜杠用/
注意:Open和Url如果有特殊字符或中文等,需要用URL编码处理后传递
举例:
自动识别当前浏览器指定位置和大小启动:
{"req":"Wrl_FlashApplet","rid":1,"para":{"Type":"0","Title":"Flash Applet","Flag":0,"IframeX":0,"IframeY":0,"BarW":0,"BarH":0,"Url":"http://test.yuanmaster.com/FlashApplet.html","Open":"http://zorrosoft.com/Files/test.swf"}}
 
自动识别当前浏览器自动适配网页大小启动:
{"req":"Wrl_FlashApplet","rid":3,"para":{"Type":"0","Title":"Flash Applet","Flag":8,"IframeX":0,"IframeY":0,"BarW":0,"BarH":0,"Url":"http://test.yuanmaster.com/FlashApplet.html","Open":"http://zorrosoft.com/Files/test.swf"}}
 
当前页指定位置自动适配网页加载测试
http://zorrosoft.com/flashframe.html
 
启动后会先后收到三个JSON数据包
A、{"ret":0,"rid":1,"data":{"ID":2}}
代表小程序WS侦听服务就绪
B、{"event":"Wrl_Listen","aid":2,"data":{"SID":"123","PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","port":990}}
返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如新播放一个Flash。
代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。
C、{"event":"Wrl_AppletOK","aid":2,"data":{"SID":"123","PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","Port":990}}
 
2)、请求控制Flash Player内嵌网页小程序:
当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等
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 Player内嵌网页小程序:
当前端截取到网页滚动通知时,需要调用此接口实现小程序和网页的滚动联动
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 Player内嵌网页小程序显示位置或大小:
当前端网页显示区域缩放时,可动态修改小程序的显示位置或大小
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":".png"}}
 
8)、请求缩放IE控件内嵌网页小程序,用于浏览器网页按比例缩放,一般不需要处理:
ID为启动小程序时返回JSON中的ID值,Scall为缩放百分比
{"req":"Wrl_AppletScale","rid":11,"para":{"ID":1,"Scale":120}}
 
3、小程序安装、升级、卸载
1)、请求安装Flash Player内嵌网页小程序
请在输入框中,输入如下请求,然后点击发送,完成安装:
 
{"req":"Plugin_Install","rid":1,"para":{"Name":"Flash Player内嵌网页小程序","PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","Date":"2021-03-27","Desc":"猿大师之上跨浏览器的Flash Player网页小程序,支持在Chrome、Edge、Firefox、IE、Oprea、360、QQ等最新版本浏览器网页中内嵌使用","DownAddr":"http://local.zorrosoft.com/Files/Net/FlashWebPlayer.pid","MD5":"653DE9B232EA968F2E5A7D7C411B4D70","Version":"2.1.3.1","Size":753664,"HideIns":0,"Type":8,"Cookie":"","Auth":"","TK":"2E5FE86E864990080DBDA254F3B7035A83AB1690506D0445C9CF66B8871917A129E6D409F59DDF59238E32CAAEE29752043272EE03871703ADE7FF122A805E70BDF25F01257489E3BE16C5A44FB9589F25871CD3260FA0ED72541AA09FBE1DA60727EC43603A0D4A564D4B24B9DB242A9B7E4AD4E02F7F1F561B899401C8D40234618E1953E4E059D555CD46EE53B13678801CFE88A7567AB6FED7363C2E6DE0C94C3989046692237828752931330BAB1A8995EAAEE16CF7A96A8AA8B155A3B057E379E11C4A666860757B0816E8B2A9181A4D02938977476ED1B724DD92454D643B5E765D8EFE49AF99D65882493391DDC38114C06C69A106DB31D5AB593F7D"}}
 
启动安装后,会不断收到安装进度直到安装结束。
 
2)、请求升级Flash Player内嵌网页小程序:
 
{"req":"Plugin_Update","rid":1,"para":{"Name":"Flash Player内嵌网页小程序","PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","Date":"2021-03-27","Desc":"猿大师之上跨浏览器的Flash Player网页小程序,支持在Chrome、Edge、Firefox、IE、Oprea、360、QQ等最新版本浏览器网页中内嵌使用","DownAddr":"http://local.zorrosoft.com/Files/Net/FlashWebPlayer_Update.pid","MD5":"E6DA6A6C9C24CD04E4491B0E247BA216","Version":"2.1.3.1","Size":753664,"HideIns":0,"Type":8,"Cookie":"","Auth":"","TK":"481D9779825B38CFD248677CE9E7B1CFBF1F6E365B519E363459C1006DD51FE19DB58768C6F8E26EDE013944D02DAB38B29934ACB440D0C9BB238D58577449CFCB6A9A392DA5295FDB033568B168636D30602EA0F998AB3831B4B6FBA6741893A44037CB80980F2CF7A2CED0C7DE539D1717888B98A49C28D873D2C080BCFFB7CB6277245C34D341650288E7E757FBC3203B93B374BB87986B257DB113258F08598C92805A0F5108C4E90B86E6BAB429176A6D7A0225D373AF7C68BB7B4401D61539876393D1E6E0A0D8632A520E31AF3D644413C1F1F057712D0F13485495E5B8203E39F301701592E0824C42DBEC3404AF0A9769A1CA7B00D9665669C93603"}}
 
以上安装和升级的JSON请求包,可能因版本升级导致内容不同,如遇安装或升级时报错,请联系客服获取最新的请求包。 
 
3)、请求卸载Flash Player内嵌网页小程序:
 
{"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) 请求退出小程序
请求:{"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 Player内嵌网页小程序接收的通知:
这些通知必须通过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、猿大师支持的事件通知:
 
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包中的“猿大师开发者手册.doc”。
如还有疑问请直接联系客服。
 


收缩