如何在 Android 中播放 .swf 文件?
Posted
技术标签:
【中文标题】如何在 Android 中播放 .swf 文件?【英文标题】:How to play .swf files in Android? 【发布时间】:2016-12-31 15:36:38 【问题描述】:我通过将 Adobe Flash Player apk 从资产复制到 SD 卡并使用 Intent 安装来安装它。即使在那之后,webView 也无法加载 .swf 文件。
我是否应该改用 Adobe Flash builder 来开发 android 应用程序。我的主要要求是从服务器播放 .swf 文件!
这是我的代码。
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_flash);
installFlashPlayer();
//Fake Url
// String url = "http://www.test.com/test.swf";
//
// webView = (WebView) findViewById(R.id.webView);
// webView.getSettings().setPluginState(WebSettings.PluginState.ON);
// webView.setWebViewClient(new WebViewClient());
//
// webView.getSettings().setUseWideViewPort(true);
// webView.getSettings().setLoadWithOverviewMode(true);
// webView.loadUrl(url);
void installFlashPlayer()
AssetManager assetManager = FlashActivity.this.getAssets();
InputStream in = null;
OutputStream out = null;
try
in = assetManager.open("flp.apk");
out = new FileOutputStream(Environment.getExternalStorageDirectory() + "/flp.apk");
byte[] buffer = new byte[1024];
int read;
while((read = in.read(buffer)) != -1)
out.write(buffer, 0, read);
in.close();
in = null;
out.flush();
out.close();
out = null;
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/flp.apk")),
"application/vnd.android.package-archive");
startActivity(intent);
catch(Exception e)
【问题讨论】:
【参考方案1】:您可以使用"GeckoView of Firefox" 我在我的项目中使用了它。
对播放 swf 文件很有用。
您还需要在 GeckoView 中设置plugin.state.flash = true;
..
如果你选择使用 GeckoView(如果我没记错的话),你的 apk 会增加 20-25 mb,因为 GeckoView 与 jni 一起使用......
【讨论】:
我在 GeckoView 库中找不到 plugin.state.flash。我们如何设置它? 抱歉回复晚了,但是你必须像 about:config in firefox 一样设置它。以上是关于如何在 Android 中播放 .swf 文件?的主要内容,如果未能解决你的问题,请参考以下文章