如何在 Android 中播放 .swf 文件?

Posted

技术标签:

【中文标题】如何在 Android 中播放 .swf 文件?【英文标题】:How to play .swf files in Android? 【发布时间】:2016-12-31 15:36:38 【问题描述】:

我通过将 Adob​​e Flash Player apk 从资产复制到 SD 卡并使用 Intent 安装来安装它。即使在那之后,webView 也无法加载 .swf 文件。

我是否应该改用 Adob​​e 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 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 设备上运行 .swf 文件

如何在网页中插入swf?

如何使用 wxMediaCtrl 在 wxwidgets 中播放 SWF 文件

在c#中播放swf文件后如何显示另一个表单

android有没有能播放.swf的开源框架

如何在Mac上播放和查看SWF文件