2012-05-19 14 views
11

Próbowałem otworzyć plik SWF w webViewClient i działa on w systemie Android 2.1 i 2.3.3. Ale kiedy próbuję odtworzyć ten sam plik SWF w wersji 4.0.4, powoduje to błąd i zielony ekran pojawia się na stronie videoPlayer.Odtwarzanie pliku SWF w webViewClient na ICS?

oWebView = (WebView) findViewById(R.id.wvhPlayer); 
oWebView.setWebViewClient(new KhWebClient()); 
oWebView.getSettings().setJavaScriptEnabled(true); 
oWebView.getSettings().setPluginsEnabled(true); 
oWebView.getSettings().setAllowFileAccess(true); 
oWebView.getSettings().setBuiltInZoomControls(true); 

String html = " <object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" width=\"100%\" height=\"100%\" id=\"vPlayer\" align=\"middle\">" 
      + " <param name=\"movie\" value=\"http://mysite.com/sites/all/modules/player/player.swf?id=0CYj9tI0hpQ" 
      + "\" />" 
      + " <param name=\"quality\" value=\"high\" />" 
      + " <param name=\"bgcolor\" value=\"#000000\" />" 
      + " <param name=\"play\" value=\"true\" />" 
      + " <param name=\"loop\" value=\"true\" />" 
      + " <param name=\"wmode\" value=\"window\" />" 
      + " <param name=\"scale\" value=\"showall\" />" 
      + " <param name=\"menu\" value=\"true\" />" 
      + " <param name=\"devicefont\" value=\"false\" />" 
      + " </object>"; 

oWebView.loadDataWithBaseURL("null", html, "text/html", "utf-8", null); 
+1

W przypadku nieodebranych wiadomości, Adobe planuje upuść wsparcie dla Flash na Androida. Polecam znalezienie alternatywy dla Flasha, jeśli chcesz, aby ta zmiana nadal działała na JellyBean i późniejszych wersjach Androida. Aby uzyskać więcej informacji, zobacz (http://lifehacker.com/5922466/remains-of-the-day-adobe-dropping-flash- with-android). –

Odpowiedz

1

według tego Question, użyłem do załadowania pliku swf zamiast ładowania html.

jego dzieło jak urok.

  1. Dodaj do AndroidManifest.xml

androida: hardwareAccelerated = "true"

2.

oWebView = (WebView) findViewById(R.id.wvhPlayer); 
oWebView.getSettings().setJavaScriptEnabled(true); 
oWebView.getSettings().setPluginState(WebSettings.PluginState.ON); 
oWebView.loadUrl("http://mysite.com/sites/all/modules/player/player.swf?id=0CYj9tI0hpQ"); 
+0

+1 .... fajny jeden człowiek – confucius

+0

hardwareAccelerated = "true" został dodany z systemu Android 3.0. Chcę zagrać w systemie Android 2.3. Czy jest jakaś praca? –

+0

wypróbuj powyższe rozwiązanie bez hardwareAccelerated = "true" – Basbous

-1

Znalazłem błąd (jeden z nich) w Android 4.0 z akceleracji sprzętowej w WebViewClient. Domyślnie ustawiają ją na true, więc spróbuj ustawić ją na false w swoim manifeście i powiedz mi, co się stanie.

* Jeśli problem został rozwiązany proszę rozważyć przeniesienie do iPhone ...

+1

Nic nie zmienia Androida: hardwareAccelerated = "false" – Basbous