win 系统,如何在 Electron 上集成 Flash 播放器?
发布于 作者:苏南大叔 来源:程序如此灵动~

flash
穷头陌路,被最新的技术html5
所取代,已经是不争的事实。adobe
官方都已经宣布:放弃flash
技术的相关研发工作。但是,作为曾经的一代枭雄flash
,余威仍然流传在网路上。在electron
开发中,总是有网友问如何在win系统中,在Electron上集成Flash播放器。相关方案是否真实可行呢?苏南大叔在本文中,继续探讨这个问题。

在electron
中文网的文档(见文末相关链接)里面,写到:需要使用 Pepper Flash 插件
。本文中,苏南大叔就详细说说"win10环境,如何在electron中,如何集成加载flash播放器"。
精髓所在
electron
加载flash
,要点就两个:
- 一是准确的找到
flash
插件的位置。 - 二是用参数
plugins
开启对应插件。
如果您的flash
加载失败没能正常显示的话,那么肯定是这两点哪里做的不对,请再次反复检查这两点。
测试是否需要安装flash
首先,请确认您的系统里面安装了flash
。(本步骤不能说十分准确,只能作为参考。)因为我们需要确认与chrome
兼容的flash
插件,所以苏南大叔建议您用您电脑里面的chrome
浏览器,来操作本步骤。比如ie
里面支持flash
,chrome
里面不支持flash
。还是非常有可能的。
先chrome
访问这个网址 http://get.adobe.com/cn/flashplayer/about/ ,看看是否可以看到红色的正方体跳动的画面,如果有看到,证明您不需要安装flash
插件。

如果没有,您需要访问这个网址下载flash
插件,链接是:https://get2.adobe.com/cn/flashplayer/ 。注意:一定不要勾选第三方软件的安装提示框哦,你懂的。


获取版本号,这个步骤并不必须,只是官方demo
代码中有提示写版本号,当然,不写版本号也是没有任何问题的。您可以在网页里面的flash
上面点击右键,一般都会有版本号显示。
下面是的步骤可以更加确切的保证,您正确安装了flash
插件。按照下图,win
系统的话,去控制面板里面查找也是可以的,要的是PPAPI
这个版本号。注意看里面的PPAPI
的字样,这个是重点。如果这里没有信息显示的话,也可以宣布您的系统里面需要安装flash
。

寻找flash
插件路径
electron
非常贴心的给出了一个函数,专门用于获得系统里面flash
插件的位置。这句代码是万能代码,不要跟着网上其他教程,寻找一系列c盘下的位置,不如下面这句代码来的省心。
会得到下面的类似路径:
因为flash
插件可以跟着chrome
浏览器打包,所以即使系统里面的chrome
浏览器支持显示flash
。也许您也不能在系统里面顺利找到flash
插件的支持文件。所以,请耐心检测和下载安装。

最终代码
完事具备,只欠东风。下面代码的基础还是我们的入门例子electron-quick-start
。swf.swf
是苏南大叔从网上下载到的一个flash
小素材文件。
main.js
:

注意上述代码中的plugins
相关字样。这里面的字不能缺少,不能写错哦。比如webPreferences
的驼峰写法,和网上流传的教程是不一样的哦。
而设置版本号的这句话,似乎是没有什么作用的。但是官方demo里面带了,为了保险起见,我们可以也暂时保留这句话。
注意:更换版本号!您看到这句话的时候,版本号很有可能发生了变化!
使用webview
加载flash
苏南大叔把上一步的代码做点小小的改动,让mainBrowser
加载index.html
。然后index.html
加载下面几种情况,作为对比。
index.html:
如果您使用webview
标签加载flash的话,则需要额外注意plugins
字样,如果您使用的是iframe
加载,则无需特殊处理。


相关链接
- 《electron使用 Pepper Flash 插件》
http://electron.org.cn/doc/tutorial/using-pepper-flash-plugin.html
结论
electron
加载显示flash
,也是蛮简单的,对吧?
亲爱的读者们,更多electron
相关经验文章,请点击苏南大叔的博客。



我也遇到rtmp不能播放
没有问题了,打扰了
请问下在iframe内的页面内使用embed加载会展示黑屏,有没有什么处理方法呢(这里的iframe是动态添加的才会有这个问题)
请问下在iframe内的页面内使用embed加载会展示黑屏,有没有什么处理方法呢
请教下,开发版本swf和rtmp视频都正常,但是编译打包后,swf正常,但rtmp无法播放是什么问题。
没试过 rtmp ...