Воспроизвести SWF файл в webViewClient на ICS?

Я попытался открыть SWF файл в webViewClient, и он работает на Android 2.1 и 2.3.3. Но когда я пытаюсь воспроизвести один и тот же SWF файл в 4.0.4, он вызывает ошибку, и на странице videoPlayer появляется зеленый экран.

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

в соответствии с этим Question, я использовал для загрузки swf файла вместо загрузки html.

его работа как шарм.

  • Добавить в AndroidManifest.xml

Android: hardwareAccelerated = "истина"

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");

Ответ 2

Я обнаружил ошибку (один из них) в android 4.0 с аппаратным ускорением в WebViewClient. По умолчанию они устанавливают значение true, поэтому попробуйте установить его в false в своем манифесте и скажите, что произойдет.

* Если это исправить проблему, пожалуйста, подумайте о переходе на Iphone...