【问题标题】:Youtube video in WebView not playing automaticallyWebView 中的 Youtube 视频无法自动播放
【发布时间】:2012-11-26 19:19:43
【问题描述】:

我正在 webview 中加载一个 youtube 视频,但问题是视频没有像我们访问实际的 youtube 网站时那样自动播放。在 webview 中,视频确实会显示并播放,但只有在我按下出现在视频顶部的播放按钮。所以我想知道是否有任何方法可以在加载 URL 后让视频在 web 视图中播放。以下是我的代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.video_view);
    WebView wv = (WebView) findViewById(R.id.webView);
    wv.getSettings().setJavaScriptEnabled(true);
    wv.getSettings().setPluginState(PluginState.ON);
    final String mimeType = "text/html";
    final String encoding = "UTF-8";
    String html = getHTML();
    wv.setWebChromeClient(new WebChromeClient() {
    });
    wv.loadDataWithBaseURL("", html, mimeType, encoding, "");
}

public String getHTML() {
     String html = "<iframe class=\"youtube-player\" style=\"border: 0; width: 100%; height: 95%; padding:0px; margin:0px\" id=\"ytplayer\" type=\"text/html\" src=\"http://www.youtube.com/embed/"
                + "J2fB5XWj6IE"
                + "?fs=0\" frameborder=\"0\">\n"
                + "</iframe>\n";
        return html;
}

谢谢!!!

【问题讨论】:

    标签: java android html iframe android-webview


    【解决方案1】:

    将“autoplay=1”添加到您的网址

    String html = "<iframe class=\"youtube-player\" style=\"border: 0; width: 100%; height: 95%; padding:0px; margin:0px\" id=\"ytplayer\" type=\"text/html\" src=\"http://www.youtube.com/embed/"
                + "J2fB5XWj6IE?autoplay=1"
                + "&fs=0\" frameborder=\"0\">\n"
                + "</iframe>\n";
    

    【讨论】:

    • 它可以工作,但 Youtube 视频的屏幕尺寸缩小了(不适合 web 视图)。所以看起来不太好
    • 嗨,BaDo,您找到其他解决方案了吗?
    • Auto_Play Youtube 视频不适合我...有人有其他解决方案吗??
    【解决方案2】:

    做 Youtube 有点棘手。首先,您需要尝试访问移动网站。其次,您需要在弹出窗口中播放它。播放需要在 WebChromClient#onShowCustomView 方法中完成。我有点忘记了细节,但这是一般的想法。 onShowCustomView 方法的“view”参数,如果我没记错的话是一个布局,里面有一个视频视图,你可以启动它来播放。

    【讨论】:

      【解决方案3】:

      按照此代码,您的视频将运行良好

          webView.getSettings().setJavaScriptEnabled(true);
          webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
          webView.getSettings().setPluginState(PluginState.ON);
          webView.getSettings().setLoadWithOverviewMode(true);
          webView.getSettings().setUseWideViewPort(true);
          webView.getSettings().setAllowFileAccess(true);
          //webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
      
          webView.setBackgroundColor(Color.BLACK);
      
          webView.getSettings().setUserAgentString("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36");
          //webView.addJavascriptInterface(this, "nativeInterface");
      
          if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) {
              webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
          }
          webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
      
      
          webView.setWebViewClient(new WebViewClient());
      
          webView.setWebChromeClient(new WebChromeClient());
      
          String youtubeID = ""; //get Youtube ID and input here
      
          String url = "http://www.youtube.com/embed/" +
                  youtubeID +
                  "?autoplay=1";
      
          webView.loadUrl(url);
      

      【讨论】:

        猜你喜欢
        • 2012-08-05
        • 2016-10-25
        • 1970-01-01
        • 2011-01-18
        • 2012-12-14
        • 2012-06-07
        • 2011-11-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多