2012-05-19 15 views
11

Ho provato ad aprire un file SWF in webViewClient e funziona su Android 2.1 e 2.3.3. Ma quando provo a riprodurre lo stesso file SWF su 4.0.4, esso genera un errore e una pagina verde appare nella pagina videoPlayer.Riproduci il file SWF in webViewClient su 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

Nel caso in cui vi siete persi la notizia, Adobe prevede di rilasciare il supporto per Flash su Android. Ti consiglio di trovare un'alternativa a Flash se desideri che questa modifica continui a funzionare su JellyBean e versioni successive di Android. Si prega di consultare (http://lifehacker.com/5922466/remains-of-the-day-adobe-dropping-flash-from-android) per ulteriori informazioni. –

risposta

1

secondo questa Question, che ho usato per caricare il file SWF invece di caricare un html.

il suo lavoro come un fascino.

  1. Aggiungi AndroidManifest.xml

android: 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 .... nice one man – confucius

+0

hardwareAccelerated = "true" è stato aggiunto da Android 3.0. Voglio giocare su Android 2.3. C'è qualche problema? –

+0

prova la soluzione precedente senza hardwareAccelerated = "true" – Basbous

-1

Ho trovato un bug (uno di loro) in Android 4.0 con l'accelerazione hardware in WebViewClient. Di default lo impostano su true, quindi prova a impostarlo su false nel tuo manifest e dimmi cosa succede.

* Se risoluzione del problema perche trasferirsi a Iphone ...

+1

Niente cambia android: hardwareAccelerated = "false" – Basbous