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

时间:2016-10-04 13:15:19

标签: android iframe youtube android-webview

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

  • 添加"自动播放= 1" URL末尾的参数(如https://www.youtube.com/embed/%s?autoplay=1),%s是视频ID。
  • Google默认情况下禁用它:https://bugs.chromium.org/p/chromium/issues/detail?id=159336
  • 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);
    

任何新的工作解决方案?

3 个答案:

答案 0 :(得分:0)

基本上,不再允许在Android的内部webview中进行自动播放。 但是,您可以尝试使用YouTube API或iframe API实现自动播放。

  1. 使用Native SDK https://developers.google.com/youtube/android/player/downloads/

  2. 使用iframe API https://developers.google.com/youtube/iframe_api_reference

答案 1 :(得分:0)

您可以尝试在网页视图上单击一下

@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);
}

答案 2 :(得分:-1)

有点晚了,但我希望这会有所帮助。

在youtube embeded url页面完成加载后运行: -

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