0

我是android和flash开发的新手。我正在为我的吉他应用程序创建一个节拍器,方法是使用 flash 来实现节拍器部分。我已经有一个吉他的工作项目和一个为节拍器动画创建的单独的 Flash 文件。

我在这个网站上做了很多研究,似乎找不到任何有效的东西,我的代码如下。我只是犯了一个菜鸟错误,还是我可以尝试一些更大的东西,这对我来说会更好。

我的目标是让活动访问 Metronome.swf 文件并像 flash 生成的 .apk 一样播放它。

这是我的节拍器.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

<WebView
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
   />
</LinearLayout>

这是我的 MetronomeActivity.java 文件:

package itcs4155.group4.guitarTeacher;


import android.os.Bundle;
import android.webkit.WebView;

public class MetronomeActivity extends BaseActivity {
   private WebView mWebView;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.metronome);


        mWebView = (WebView)findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setPluginsEnabled(true);


        String html = "<object width=\"768\" height=\"1024\"> <param name=\"movie\" value=\"file:///android_asset/Metronome.swf\"> <embed src=\"file:///android_asset/Metronome.swf\" width=\"768\" height=\"1024\"> </embed> </object>";
        String mimeType = "text/html";
        String encoding = "utf-8";
        mWebView.loadDataWithBaseURL("null", html, mimeType, encoding, "");
    }
}

提前感谢您的帮助!

4

2 回答 2

2

有时可能会发生未显示在 Web 视图上加载 swf 文件的情况。

尝试在清单文件中添加 android:android:hardwareAccelerated="true" 。

<application android:hardwareAccelerated="true">
        <activity ... />
        <activity android:hardwareAccelerated="true" />
    </application>

它可能会帮助...

于 2012-05-11T11:33:17.613 回答
0

就像上面提到的 Akshay,

<activity android:hardwareAccelerated="true" />

需要添加,但是我遇到了一个问题,即 swf 无法完全加载或加载初始 swf。我的解决方案是指出

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mWebView = (WebView) findViewById(R.id.web_engine);
    mWebView.getSettings().setPluginsEnabled(true);
    mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
    mWebView.setBackgroundColor(Color.parseColor("#000000"));
    mWebView.loadUrl("file:///android_asset/swfFile.html");


}

请记住,要使用 setPluginsEnabled,您需要将 API 版本降级到 10 或 11。

您的 html 文件通常是在发布 swf 文件时生成的,或者您可以添加:

<div id="flashContent">
        <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="100%" id=**"Something**" align="middle">
            <param name="movie" value="**Something.swf**" />
            <param name="quality" value="high" />
            <param name="bgcolor" value="#000000" />
            <param name="play" value="true" />
            <param name="loop" value="true" />
            <param name="wmode" value="direct" />
            <param name="scale" value="showall" />
            <param name="menu" value="true" />
            <param name="devicefont" value="false" />
            <param name="salign" value="" />
            <param name="allowScriptAccess" value="sameDomain" />
            <!--[if !IE]>-->
            <object type="application/x-shockwave-flash" data="**Something.swf**" width="100%" height="100%">
                <param name="movie" value="**Something.swf**" />
                <param name="quality" value="high" />
                <param name="bgcolor" value="#000000" />
                <param name="play" value="true" />
                <param name="loop" value="true" />
                <param name="wmode" value="direct" />
                <param name="scale" value="showall" />
                <param name="menu" value="true" />
                <param name="devicefont" value="false" />
                <param name="salign" value="" />
                <param name="allowScriptAccess" value="sameDomain" />
            <!--<![endif]-->
                <a href="http://www.adobe.com/go/getflash">
                    <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Obtener Adobe Flash Player" />
                </a>
            <!--[if !IE]>-->
            </object>
            <!--<![endif]-->
        </object>
    </div>
于 2014-02-11T23:31:11.910 回答