Android 3.0.1 的 WebView 中不显示 Flash 视频

Posted

技术标签:

【中文标题】Android 3.0.1 的 WebView 中不显示 Flash 视频【英文标题】:Flash video not displaying in WebView for Android 3.0.1 【发布时间】:2011-07-19 23:52:44 【问题描述】:

我有一个简单的 WebView 来显示一个带有 Flash 的网站(Adobe Flash 网站)——在运行 android 3.0.1 和新发布的 Flash 10.2 的 Xoom 平板电脑上进行测试

在参考了***上的每个问题后,我设置了以下内容:

mWebView.getSettings().setjavascriptEnabled(true);
mWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
mWebView.loadUrl("http://www.adobe.com/software/flash/about/");

PluginsJavaScript 都使用 getSettings() 为 WebView 启用,但 Flash 无法显示。当我将 setPluginState 设置为 ON_DEMAND 时,它会显示正确的 Flash 占位符 - 再次,当我点击 Flash 应该在的项目时,Flash 消失(好像Flash 视频无法呈现),只能听到音频(取决于 Flash 内容)。

我还注意到,我可以点按丢失的 Flash,长按,然后点按左上角新的 Flash“全屏”按钮应该所在的位置,然后它就会出现在全屏模式下正确显示。但是当我回退到 WebView 时,它再次无法显示并且只播放音频。

感谢任何想法!请不要在没有详细说明我为什么提到 Android 3.0 发布前几个月的帖子的情况下将我转回几个月前发布的内容!再次感谢任何帮助。很棒的社区!

【问题讨论】:

我很想知道这个问题的答案。我在 android 中创建了一个应用程序来将 web 视图渲染到 LiveWallpaper 对象的背景中,并获得了完全相同的行为(减去点击 + 全屏,因为我只能绘制画布而不能附加视图)。无论如何,我只是想我会分享那一点,所以你知道这不仅仅是你,感谢你发布这个,因为它让我知道这不仅仅是我做过的事情! 编辑我的应用程序在 android 2.1 emu 和 2.2 实际设备 htc 上都出现了这种行为。 【参考方案1】:
webView.setWebChromeClient(new WebChromeClient());

不知道为什么,但这对我有帮助。

【讨论】:

【参考方案2】:

来自 API 文档 here

在您的 Android 清单文件中,将以下属性添加到 <application> 标记以启用整个应用程序的硬件加速:

<application android:hardwareAccelerated="true" ...>

要在活动级别启用或禁用硬件加速,您可以使用&lt;activity&gt; 元素的android:hardwareAccelerated 属性。

<application android:hardwareAccelerated="true">
    <activity ... />
    <activity android:hardwareAccelerated="false" />
</application>

【讨论】:

【参考方案3】:

我也遇到了同样的问题,我只能在此处播放音频,并且在WebView 中可以看到黑屏。我在摩托罗拉 Xoom 中使用的是 Android 3.2。

在搜索了很多这个解决方案之后,我终于可以在我的应用程序中正常播放视频了。

解决方案: 我创建了另一个 android 项目,其中包含 WebView 的单个 Activity 并设置了上述技巧(即 android:hardwareAccelerated="true" 等)。令人惊讶的是,我能够将视频完美地播放到这个项目中!

奇怪的是,我无法在我的应用程序项目中使用相同的源代码和所有内容来播放它。无论如何它确实对我有用,不知道如何!

【讨论】:

【参考方案4】:

所以经过一个半星期以上的高低搜索,尝试不同的技术,几乎准备把我的平板电脑扔出窗外,我终于想通了——我不太高兴它有多简单是修复;再说一遍,我是!

请记住,这是针对 Flash 视频未加载到我的 Xoom Android 3.0.1 平板电脑上的 WebView 且 PluginState 为 ON 的问题。阅读我的问题,然后阅读答案。享受吧!

第 1 步:只需将其添加到 Applications Manifest XML 下的标签中

android:hardwareAccelerated="true"

第 2 步:加载您的应用并享受启用 Flash 的 WebView!

祝你好运!

【讨论】:

我有完全相同的症状 - 包括长按和点击左上角以显示视频。但是,hardwareAccelerated 修复对我不起作用。摩托罗拉 Xyboard。 我可以通过将 hardwareAccelerated 从清单标签移动到活动标签来实现此功能。 它适用于 Android 4 (ICS),至少将属性添加到 activity 标签。 适用于 ICS。至少它对我来说很好而且很顺利。当我发现这很容易时,我的感觉和你 Xezuka 一样 @Xezuka,一些 ics 平板电脑 webview 仅加载一半而不是全屏。帮帮我.. 一些

以上是关于Android 3.0.1 的 WebView 中不显示 Flash 视频的主要内容,如果未能解决你的问题,请参考以下文章

Android WebView

Android:如何在webview中呈现html而不显示webview

Android中WebView和父控件滑动冲突

Android中webView的基础使用

android 中 webview 怎么用 localStorage

android 升级webview版本,包括6.0系统