Android WebView 中的 Flash — 如何自动设置全屏?

Posted

技术标签:

【中文标题】Android WebView 中的 Flash — 如何自动设置全屏?【英文标题】:Flash inside Android WebView — How do I set fullscreen automatically? 【发布时间】:2011-08-05 04:18:43 【问题描述】:

我正在将 Flash SWF 加载到 android WebView 中。

我希望 SWF 立即全屏并集中显示。

处理闪存的类名是com.adobe.flashplayer.FlashPaintSurface。看日志,当我手动全屏flash时,它会调用com.adobe.flashplayer.FlashPaintSurface.toggleFullScreen()

我的问题的第一部分是:如何为我的 Flash SWF 手动调用该方法?

请注意,对于嵌入了 Flash 的 webview,我似乎能够正确全屏显示它的唯一方法(让 Flash 的 surfaceview 全屏显示而不是在 webview view 上方显示 Flash)是通过触摸用两根手指打开屏幕,直到屏幕顶部弹出一个界面,并且不会可靠地发生。

为了集中注意力,在我的 webview 类中我调用:

@Override 
protected boolean drawChild (Canvas canvas, View child, long drawingTime) 

    if (child.getClass().getName().equals("com.adobe.flashplayer.FlashPaintSurface")) 
        child.requestFocus();
    
    return super.drawChild(canvas, child, drawingTime);

这并没有像我想象的那样设置焦点。虽然我假设,如果全屏正确,FlashPaintSurface 应该给自己焦点。但如果第一部分不可行,我想至少不必通过在启动时单击它来关注 SWF。

请注意,我是动态执行此操作,而不是调用我自己制作的 SWF,因此我无法使用 Actionscript 解决此问题。

【问题讨论】:

我发现解决焦点问题的方法是添加 onload="document.OBJECTID.focus();"进入 html 和 id="OBJECTID" name="OBJECTID" 进入 ,但是我仍然无法正确调用该方法。 我不确定这是否可行,当您在浏览器中运行 swf 时,您通常只能从用户事件进入全屏状态,例如触摸或用鼠标单击。它是为了安全。如果应用在 adobe air 中运行,则无需用户交互即可全屏显示。 【参考方案1】:

我已经成功地使用了我之前对Problem to load flv video in webview 的解决方案中的代码。它可能会有所帮助。

嵌入标签如下所示:

<embed
 style="width:100%; height:100%"
 src="./FLVPlayer.swf?fullscreen=true&video=./expression_sad.flv"
 autoplay="true"
 quality="high"
 bgcolor="#000000"
 name="VideoPlayer"
 align="middle"
 allowScriptAccess="*"
 allowFullScreen="true"
 type="application/x-shockwave-flash"
 pluginspage="http://www.macromedia.com/go/getflashplayer">
 </embed>

【讨论】:

【参考方案2】:

Adobe 的每个 Android 应用程序都使用一个文件 "application.xml" -- 默认情况下作为其描述符:

在为此编写任何代码之前,请先查看该文件。 它会更改每个版本,但我最后一次使用它是设置这个变量(全屏)..

【讨论】:

以上是关于Android WebView 中的 Flash — 如何自动设置全屏?的主要内容,如果未能解决你的问题,请参考以下文章

Android 3.0.1 的 WebView 中不显示 Flash 视频

当我的活动不可见时,如何在 Android WebView 中暂停 Flash 内容?

android平板videoview播放视频,webview播放flash能旋转180吗?

Android上面做Flash播放器

有没有办法让 webview 显示 flash 内容?

iOS App:用原生播放器替换 webview 中的 Flash