【问题标题】:Webview unable to load video after visibility change可见性更改后 Webview 无法加载视频
【发布时间】:2018-06-20 17:39:38
【问题描述】:

我遇到了一个奇怪的问题。

每当我使用的 webview 没有显示在屏幕上时,它在下次在屏幕上可见时加载新 URL 时就会出现问题。

我测试过的——

  1. 如果没有可见性变化,当我调用 loadUrl 方法时,webview 可以一个接一个地加载多个 url。

  2. 如果在任何时候它被隐藏了,要么是因为我将其可见性设置为 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"/>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-18
        • 2015-03-20
        • 1970-01-01
        • 1970-01-01
        • 2019-06-24
        • 1970-01-01
        • 1970-01-01
        • 2021-04-11
        相关资源
        最近更新 更多