我刚开始接触Android并着手处理Flash对象,我指的是.swf文件。我已经阅读了许多关于使用WebView来加载存储在assets/SD位置的swf文件的内容,但始终无法实现。我得到了一些建议来自如何在WebView中播放本地swf文件、flash播放器、Adobe Air的特性设置swf以制作apk等。但是由于以下原因,我仍然不能令.swf文件运行令人满意:
我在此附上了一段代码片段,我正在努力完成工作以使swf文件运行:
后面的内容翻译如下:
即使我将所有东西都设置为上述链接中的设置,我也会得到一个空白屏幕,这让我感到失望,因为flash播放器当前不是默认值(“启动默认值”选项在设置->应用程序->Flash播放器->默认情况下启动),因此我无法运行flash内容。
我已经应用了Adobe AIR来获得swf文件的apk,但由于两个原因:a)非常费力的过程和b)需要每次安装Adobe AIR,使整个目的失败。
Flash中有很多术语/混淆,以及很多新闻表示Flash没有为移动领域更新其产品,而Android正在“拥有”/“试图”转向html 5。
我在此附上了一段代码片段,我正在努力完成工作以使swf文件运行:
Approach One :
import android.annotation.SuppressLint; import android.app.Activity; import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; import android.widget.LinearLayout; @SuppressLint("SetJavaScriptEnabled") public class SWFViewer extends Activity { WebView wvswf; LinearLayout linearLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_swfviewer); linearLayout = (LinearLayout) findViewById(R.id.linearLayout); wvswf = new WebView(SWFViewer.this); wvswf.getSettings().setJavaScriptEnabled(true); wvswf.getSettings().setPluginState(WebSettings.PluginState.ON); wvswf.getSettings().setAllowFileAccess(true); linearLayout.addView(wvswf, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); String Url = "file:///android_asset/main.swf"; wvswf.loadUrl(Url); } }
布局如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.winit.nunna.swfviewer"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8"
android:maxSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="READ_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.winit.nunna.swfviewer.SWFViewer"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
- 第二种方法
使用Adobe AIR SDK,我们可以使用主SWF文件、一些XML配置文件和应用签名来创建一个APK文件。
结论:第一种方法最简单但没有输出结果。
12-20 13:56:28.457: INFO/WindowManager(162): MediaPlayer.is not PlayingVideo
后面的内容翻译如下:
后一种方法有很多额外依赖,非常麻烦。
请给我更好的选择来获得性价比高/中等性能的Flash输出。