Youtube video not loading in webview in android

I want to show YouTube url in web view. But it doesn't load in webview.

Here is my code.

     WebView web_view = (WebView) findViewById(R.id.web_view);

    web_view.setWebViewClient(new WebViewClient());
    web_view.getSettings().setJavaScriptEnabled(true);
    web_view.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    web_view.getSettings().setPluginState(WebSettings.PluginState.ON);
    web_view.getSettings().setMediaPlaybackRequiresUserGesture(false);
    web_view.setWebChromeClient(new WebChromeClient());

    web_view.loadUrl("https://www.youtube.com/watch?v=s8n16rns-iM");

      

video does not load in web view. It shows an error: [INFO: CONSOLE (16)] "The" target-densitydpi "key is not supported.", Source: https://m.youtube.com/watch?v=s8n16rns-iM

+3


source to share


2 answers


try it



 String frameVideo = "<html><body>Video From YouTube<br><iframe width=\"420\" height=\"315\" src=\"https://www.youtube.com/watch?v=ue80QwXMRHg&app=desktop\" frameborder=\"0\" allowfullscreen></iframe></body></html>";

WebView displayYoutubeVideo = (WebView) findViewById(R.id.mWebView);
displayYoutubeVideo.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return false;
    }
});
WebSettings webSettings = displayYoutubeVideo.getSettings();
webSettings.setJavaScriptEnabled(true);
displayYoutubeVideo.loadData(frameVideo, "text/html", "utf-8");

      

0


source


To get html frame for a specific video, use this function with video id,

public String getHtmlfromVideoId(String videoId) {
        String html = "<iframe class=\"youtube-player\" " + "style=\"border: 0; width: 100%; height: 96%;"
                + "padding:0px; margin:0px\" " + "id=\"ytplayer\" type=\"text/html\" "
                + "src=\"http://www.youtube.com/embed/" + videoId
                + "?&theme=dark&autohide=2&modestbranding=1&showinfo=0&autoplay=1\fs=0\" frameborder=\"0\" "
                + "allowfullscreen autobuffer " + "controls onclick=\"this.play()\">\n" + "</iframe>\n";
        return html;
    }

      

The video ID usually appears after the v parameter of the youtube URL. For example, the video id https://www.youtube.com/watch?v=s8n16rns-iM&app=desktop is s8n16rns-iM



Once you get the html frame, load it directly into the WebView,

webView.loadData(html, "text/html", "UTF-8");

      

0


source







All Articles