【问题标题】:Android WebView setMediaPlaybackRequiresUserGesture(false) only working one timeAndroid WebView setMediaPlaybackRequiresUserGesture(false) 只工作一次
【发布时间】:2021-01-24 13:03:52
【问题描述】:

我尝试将 Android WebView 中的视频设置为全屏,为此我将 setMediaPlaybackRequiresUserGesture 设置为 false。这是一次工作,但在结束全屏并尝试再次将其设置为全屏后,由于此 js 错误,它无法正常工作:

I/chromium: [INFO:CONSOLE(1)] "Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture.", source:  (1)

我这样初始化 webview:

webView = root.findViewById(R.id.animeWebView);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSupportZoom(false);
webView.getSettings().setBuiltInZoomControls(false);
webView.getSettings().setLoadWithOverviewMode(false);
webView.getSettings().setUseWideViewPort(false);
webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

我这样进入全屏:

getWebView().evaluateJavascript("(function() { document.querySelector(\"#html5_player\").requestFullscreen(); })();", null);

退出:

getWebView().evaluateJavascript("(function() { document.exitFullscreen(); })();", null);

然后我尝试再次进入全屏 => 我上面写的失败。

我用 getMediaPlaybackRequiresUserGesture 检查了这个值,它总是假的。

我使用这个https://github.com/cprcrack/VideoEnabledWebView 将视频设置为全屏。

在 Android 9 上测试 - 编译和目标 SDK 版本:30 - 最低 Sdk 版本:24

【问题讨论】:

    标签: android webview video-streaming html5-video fullscreen


    【解决方案1】:

    这个不干净解决方法对我有用。

    getWebView().dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, -1, -1, 0));
    getWebView().dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, -1, -1, 0));
    getWebView().evaluateJavascript("(function() { document.querySelector(\"#html5_player\").requestFullscreen(); })();", null);
    

    【讨论】:

      猜你喜欢
      • 2012-12-26
      • 1970-01-01
      • 2020-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-26
      • 2011-02-17
      • 2021-06-10
      相关资源
      最近更新 更多