我是android和flash开发的新手。我正在为我的吉他应用程序创建一个节拍器,使用闪光灯来实现节拍器部分。我已经有一个吉他的工作项目和我为节拍器动画创建的单独的flash文件。
我在这个网站上做了很多研究,似乎找不到任何有用的东西,我的代码如下。我只是犯了一个新手的错误,或者有更大的东西,我可以尝试,这对我来说会更好。
我的目标是让活动访问Metronome.swf文件并像flash生成的.apk一样播放。
这是我的metronome.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, "");
}
}
提前感谢您的帮助!
答案 0 :(得分:2)
有时可能会出现swf文件加载到Web视图上的情况。不会显示。
尝试在 清单文件 中添加android:android:hardwareAccelerated =“true”。
<application android:hardwareAccelerated="true">
<activity ... />
<activity android:hardwareAccelerated="true" />
</application>
这可能会有所帮助......
答案 1 :(得分: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>