gpt4 book ai didi

flash 播放器在尝试进入全屏模式 android 4.0 时崩溃

转载 作者:行者123 更新时间:2023-12-01 00:30:26 25 4
gpt4 key购买 nike

所以我创建了一个 Android 应用程序,可以播放来自 blip.tv 和各种其他支持 flash 的网站的视频。我使用 Webview 来显示视频。这是我的代码:

try{
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);


view = new WebView(this);
view.getSettings().setPluginsEnabled(true);
view.getSettings().setPluginState(WebSettings.PluginState.ON);

view.getSettings().setJavaScriptEnabled(true);
view.getSettings().setLoadWithOverviewMode(true);
view.getSettings().setUseWideViewPort(true);
view.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
view.setScrollbarFadingEnabled(true);


// get the html code
String html = getIntent().getStringExtra("VIDEO_CONTENT");

view.loadData(html, "text/html", null);
setContentView(view);
}
catch(Exception e){

}

问题出在 android 4 (Ice Cream Sandwich) 上。当我尝试将应用程序置于全屏模式时,应用程序崩溃了。但是,该应用程序不会在 android 2.3 或 3.0 上崩溃。有解决此问题的想法吗?

最佳答案

这发生在 ICS 中,因为 show() android.webkit.PluginFullScreenHolder 中的方法尝试进入全屏模式时被调用。此方法执行以下操作:

WebChromeClient client = mWebView.getWebChromeClient();
client.onShowCustomView(mLayout, mOrientation, mCallback);

如果不设置 WebChromeClient在你的 WebView , 你会得到一个 NPE。

这修复了我们的崩溃问题,但是 WebView 消失了并且没有显示全屏视频。

参见:Android ICS 4.0 Placing Flash WebView into full screen calls hideAll Method?

*** 更新:

最终,为了得到我的WebView要在全屏模式下播放 Flash 视频,我必须执行 onShowCustomView()我的方法 WebChromeClient以类似于在 Android 浏览器的源代码中所做的方式。我用来激发灵感的那个方法的实现是在 BaseUI 类中:

https://github.com/android/platform_packages_apps_browser/blob/master/src/com/android/browser/BaseUi.java

我不完全明白这里发生了什么。我也希望我理解为什么 ICS 上的开发人员决定要求实现此方法。我希望我知道值(value),或者这解决了什么问题。在过去的版本中,这种全屏模式“刚刚好”,现在需要大量的挖掘。

关于flash 播放器在尝试进入全屏模式 android 4.0 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8660866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com