【问题标题】:Flash inside Android WebView — How do I set fullscreen automatically?Android WebView 中的 Flash — 如何自动设置全屏?
【发布时间】: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 中运行,则无需用户交互即可全屏显示。

标签: android flash webview fullscreen


【解决方案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" -- 默认情况下作为其描述符:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-11
      • 1970-01-01
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      相关资源
      最近更新 更多