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

时间:2016-08-24 13:13:10

标签: java android flash adobe

我安装了Adobe Flash Player apk,将其从资产复制到SD卡并使用Intent进行安装。即使在此之后,webView也无法加载.swf文件。

我应该使用Adobe Flash构建器来开发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 个答案:

答案 0 :(得分:0)

您可以使用"GeckoView of Firefox" 我在我的项目中使用了它。

用于播放swf文件。

您还需要在GeckoView中设置plugin.state.flash = true; ..

糟糕的想法是,如果你选择使用GeckoView(如果我不记得错误的话),你的apk会增加20-25 mb,因为GeckoView可以使用jni ...