如何在WebView中自动播放视频时隐藏“开始视频播放”按钮

时间:2016-09-13 22:54:17

标签: android android-layout

我有一个简单的WebView渲染HTML5页面,在背景中播放视频..我将视频设置为自动播放

browser.getSettings().setMediaPlaybackRequiresUserGesture(false);

除了“开始视频播放”按钮仍然存在外,它仍可正常工作。当我点击按钮时它没有任何作用,因为视频已经在播放..有什么办法可以隐藏这个按钮吗?我搜查了一下,什么也没找到。

enter image description here

编辑:这很有效!

browser.setWebChromeClient(new WebChromeClient() {
        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            super.onProgressChanged(view, newProgress);

            browser.loadUrl("javascript:document.getElementById('VideoClipPlayButton').click();"
        }
    });

1 个答案:

答案 0 :(得分:1)

我找到了解决问题的方法。您只需添加一个新的Javascript,它将在加载页面时关闭按钮。以下代码已经过测试和运作。我检查了C#,但Java非常相似所以它必须工作。

<强> JAVA

wv.loadUrl("http://app.singular.live/webchannels/298/onair");
wv.getSettings().setMediaPlaybackRequiresUserGesture(false);
wv.getSettings().setPluginState(PluginState.ON);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setAllowFileAccess(true);

wv.setWebViewClient(new WebViewClient()
{
  public void onPageFinished(WebView view, String url)
     {
    //here create new JS find element in page (button) and set visibility to hidden
    wv.loadUrl("javascript:document.getElementById('VideoClipPlayButton').style.visibility = 'hidden';");
       }
});

C#(XAMARIN)

    Button button = FindViewById<Button>(Resource.Id.MyButton);
    WebView wv = FindViewById<WebView>(Resource.Id.webView1);
    wv.Settings.JavaScriptEnabled = true;
    wv.LoadUrl("http://app.singular.live/webchannels/298/onair");
    wv.Settings.MediaPlaybackRequiresUserGesture = false;
    wv.Settings.PluginsEnabled = true;
    wv.Settings.SetPluginState(WebSettings.PluginState.On);
    wv.Settings.JavaScriptEnabled = true;
    wv.Settings.AllowFileAccess = true;


     button.Click  += (s, e) =>
     {
         wv.LoadUrl("javascript:document.getElementById('VideoClipPlayButton').style.visibility = 'hidden';");
     };