如何在webview android上自动播放iframe youtube

如何在webview android上自动播放iframe youtube,android,iframe,youtube,android-webview,Android,Iframe,Youtube,Android Webview,我已经阅读了与此问题相关的所有内容,但迄今为止没有任何效果: 将“autoplay=1”参数添加到URL的末尾(如https://www.youtube.com/embed/%s?autoplay=1),%s是视频id 谷歌似乎在默认情况下禁用了它: Javascript注入无法工作: mWebView.setWebViewClient(new WebViewClient() { public void onPageFinished(WebView view, String url)

我已经阅读了与此问题相关的所有内容,但迄今为止没有任何效果:

  • 将“autoplay=1”参数添加到URL的末尾(如
    https://www.youtube.com/embed/%s?autoplay=1
    ),
    %s
    是视频id
  • 谷歌似乎在默认情况下禁用了它:
  • Javascript注入无法工作:

    mWebView.setWebViewClient(new WebViewClient() {
        public void onPageFinished(WebView view, String url) {
            mWebView.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()");
        }
    
    });
    mWebView.getSettings().setJavaScriptEnabled(true);
    

有新的工作解决方案吗?

基本上,Android的内部网络视图不再允许自动播放。 但是,您可以尝试使用YouTube API或iframe API实现自动播放

  • 使用本机SDK

  • 使用iframeapi


  • 有点晚了,但我希望这有帮助

    加载完youtube嵌入的url页面后,运行以下操作:-

    yourWebView.loadUrl("javascript:(function() { document.getElementsByClassName('ytp-large-play-button ytp-button')[0].click(); })()");
    

    您可以尝试在webview上单击一次

    @Override
    public void onPageFinished(WebView view, String url) {
        float x = view.getWidth() / 2;
        float y = view.getHeight() / 2;
        MotionEvent motionEventDown = MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, x, y, 0.5f, 0.5f, 0, 0.5f, 0.5f, InputDevice.SOURCE_TOUCHSCREEN, 0);
        MotionEvent motionEventUp = MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis() + 200, MotionEvent.ACTION_UP, x, y, 0.5f, 0.5f, 0, 0.5f, 0.5f, InputDevice.SOURCE_TOUCHSCREEN, 0);
        view.dispatchTouchEvent(motionEventDown);
        view.dispatchTouchEvent(motionEventUp);
    }