2012-12-20 52 views
5

我是剛接觸android並剛剛開始處理flash對象,我的意思是.swf文件。我已閱讀了很多關於使用Web視圖加載存儲在資產/ SD位置的swf文件,但無濟於事的信息。我已得到How to Play local swf files in a webview建議,Flash播放器,設置一個SWF作出APK等,但我仍然感到不能夠令人滿意的運行SWF文件,由於以下原因Adobe AIR的特點:如何在Android設備上運行.swf文件

  1. 即使我在上面的鏈接中設置了所有設置,但我得到一個空白屏幕,非常令我對現在不是默認的Flash播放器感到沮喪(設置 - >應用程序 - > Flash播放器 - >默認情況下爲「默認啓動」啓動默認),因此我無法運行Flash內容。

  2. 我已經通過遵循漫長的過程實際獲得swf文件的apk,但由於兩個原因:a)非常費力的過程和b)Adobe AIR的每個安裝需求使整個目的一場失敗的戰鬥。

  3. 很多在Flash行話/混亂和大量的新聞如何閃光燈未進行更新,其產品適用於移動部門,以及如何機器人「有」 /「試圖」移動到HTML 5

我希望大家能夠解決這個問題,以便在Android上運行閃存swf對象,並在瀏覽器中添加最少的插件廣告。我希望儘可能減少支持文件,使我的工作更具生產力和教育意義。

我在此附上一段代碼,我正在努力完成工作,以獲得swf文件運行:

  1. 方法一:

    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> 
  1. 方法二

使用Adobe AIR SDK,我們創建一個使用主SWF文件的APK,配置和應用程序簽署一些XML文件,我們可以釋放一個APK。

結論:第一種是最簡單的,但沒有O/P

12-20 13:56:28.457: INFO/WindowManager(162): MediaPlayer.is not PlayingVideo 

後來是有很多額外的依賴繁瑣。

請給我更好的選擇,以得到一個負擔得起又高/中等性能Flash O/p。

+0

請注意,Adobe決定不再支持Flash。 – CommonsWare

+0

我無法理解「Flash在Android中不支持」的含義,如果您可以向我解釋這一點,這將是一個巨大的幫助,我現在正在閱讀關於SWFObject,我認爲它可以在HTML5中用於Flash以非閃光方式呈現對象,請對此發表評論。 謝謝 –

+2

如果您使用搜索引擎來搜索'android flash',您會發現http://www.theverge.com/2012/8/14/3241727/flash-for-android-dies和http:// www。 zdnet.com/androids-flash-player-is-dead-live-with-it-7000002668/ and http://www.digitaltrends.com/mobile/adobe-flash-for-android-gone-with-barely-a -whimper /和http://readwrite.com/2012/08/14/adobe-flash-on-android-rip和http://www.webmonkey.com/2012/08/no-more-flash-for- android /和http://tech.slashdot.org/story/12/08/15/1441200/adobe-officially-kills-new-flash-installations-on-android等。 AIR可能仍然可用。 – CommonsWare

回答

-1

沒有簡單的方法來使用WebView將swf文件集成到原生android(Java)代碼中,而無需使用WebView。

如果您聲明您的問題已通過使用相同的swf構建APK與Adobe AIR來解決,那麼我認爲您已解決了將swf獲取到android的問題,但實際上並未按照上述問題。

相關問題