【问题标题】:WebView doesn't play swf file on AndroidWebView 在 Android 上不播放 swf 文件
【发布时间】:2011-05-21 12:31:41
【问题描述】:

我正在为 android 3.0 平板电脑开发一个应用程序,它应该在 WebView 中播放 swf 文件。 首先,我尝试从设备打开 swf 文件,而不是通过互联网打开,但没有成功。 WebView 出现了,但在 WebView 内部,我只能看到一个黑屏(右侧有 3-4 px 宽的白线)。 如果我将相同的 URL 加载到设备浏览器,则 Flash 文件可以正常播放。 我想我在 WebView 设置上遗漏了一些东西,但经过几个小时的搜索和谷歌搜索后,我仍然不知道是什么。

Java 代码:

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    setContentView(R.layout.presentation);

    presentationWebView = (WebView) findViewById(R.id.presentation_webview);

    presentationWebView.getSettings().setJavaScriptEnabled(true);
    presentationWebView.getSettings().setPluginsEnabled(true);
    presentationWebView.getSettings().setAllowFileAccess(true);
    presentationWebView.loadUrl("http://my_domain/fileName.swf");

}

presentation.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <WebView
        android:id = "@+id/presentation_webview"
        android:layout_width = "fill_parent"
        android:layout_height = "fill_parent"/>
</LinearLayout>

非常感谢您的任何回答。 呸呸呸

【问题讨论】:

标签: android flash android-webview


【解决方案1】:

我终于明白了! 只需要添加属性

android:hardwareAccelerated = "true"

到我的清单文件。

【讨论】:

  • 这很有趣!请问在这种情况下使用的是什么设备和 Android 版本?在我的两台设备上,swf 文件在没有启用 hardwareAccelerated 设置的情况下工作。
  • 在看了几天的空白屏幕后,我发现了这个... android:hardwareAccelerated = "true" ...老实说...它拯救了我的一天!!!
【解决方案2】:

我只是将您的代码复制并粘贴到一个新项目中,更改了 swf 文件位置,它运行良好。 (在 .swf 文件完成下载之前,屏幕是空白的,在某些情况下可能需要一段时间)。

您的应用是否拥有 INTERNET 权限?网址绝对正确?尝试使用几个不同的 SWF 文件,看看是否有区别。

【讨论】:

    【解决方案3】:

    谢谢 Pipityom。属性“android:hardwareAccelerated”救了我的命。也为我工作。

    这里我发布了来自android开发者文档的解释“从Android 3.0开始,硬件加速的OpenGL渲染器可供应用程序使用,以提高许多常见的2D图形操作的性能。启用硬件加速渲染器后,大多数操作在 Canvas 中,Paint、Xfermode、ColorFilter、Shader 和 Camera 得到了加速。这会导致更流畅的动画、更流畅的滚动和整体上的响应速度提高,即使对于没有明确使用框架的 OpenGL 库的应用程序也是如此。

    请注意,并非所有 OpenGL 2D 操作都被加速。如果您启用了硬件加速渲染器,请测试您的应用程序以确保它可以正确使用渲染器。”

    【讨论】:

      猜你喜欢
      • 2012-03-11
      • 1970-01-01
      • 2011-12-02
      • 2016-12-31
      • 1970-01-01
      • 2012-01-26
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多