WebView中的Youtube视频无法自动播放

时间:2012-11-26 19:19:43

标签: java android html5 iframe android-webview

我正在网页浏览中加载YouTube视频,但问题是视频无法像我们访问实际的YouTube网站时那样自动播放。在网页视频中,视频会显示并播放,但只有在我按下之后播放按钮出现在视频的顶部。所以我想知道,一旦网址加载,我是否可以通过网页视频播放视频。以下是我的代码:

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

谢谢!!!

3 个答案:

答案 0 :(得分:4)

将“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";

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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