【问题标题】:Webview unable to load video after visibility change可见性更改后 Webview 无法加载视频
【发布时间】:2018-06-20 17:39:38
【问题描述】:
我遇到了一个奇怪的问题。
每当我使用的 webview 没有显示在屏幕上时,它在下次在屏幕上可见时加载新 URL 时就会出现问题。
我测试过的——
如果没有可见性变化,当我调用 loadUrl 方法时,webview 可以一个接一个地加载多个 url。
-
如果在任何时候它被隐藏了,要么是因为我将其可见性设置为 GONE,要么是另一个视图出现在它上面,然后它在恢复为可见状态后不会加载。
一个有趣的事情是,URL 正在加载(它有一个嵌入代码播放视频),因为我可以听到新视频的声音,但视觉效果卡住了,显示最后一个加载的 URL 的视觉效果。
我在这里遗漏了什么明显的东西吗?
【问题讨论】:
标签:
android
android-webview
【解决方案1】:
仍然无法弄清楚为什么会这样。每次我需要它时都会膨胀一个新的 Webview 实例(并销毁旧实例)。这不是一个非常频繁的操作(需要在很宽的频率范围内出现,从 5 秒一次到 2 小时一次),因此可以忽略性能问题。
不是解决方案,但它对我有用。
【解决方案2】:
我不确定您想如何使用可见性,但我认为您将能够在实现以下代码后解决您的问题:
webView = findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
webView.setWebChromeClient(new WebChromeClient());
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.loadUrl("https://www.w3schools.com/tags/movie.mp4");//video url
//checking the webview functionality after hiding and showing webview
webView.setVisibility(View.GONE);
webView.setVisibility(View.VISIBLE);
注意:不要忘记在应用的 manifest.xaml 中添加互联网权限
<uses-permission android:name="android.permission.INTERNET"/>