How can we play YouTube embeded code in an Android application using webview?

前端 未结 4 1488
庸人自扰
庸人自扰 2020-12-05 22:01

How can we play YouTube embeded code in an Android application using webview?

相关标签:
4条回答
  • 2020-12-05 22:32

    Hi if you get a blackscreen maybe make sure that you enable plugins

    WebView engine = (WebView) findViewById(R.id.webview);
    engine.getSettings().setJavaScriptEnabled(true);
    engine.getSettings().setPluginsEnabled(true);
    engine.loadUrl("http://www.youtube.com/embed/bIPcobKMB94?autoplay=1");
    
    0 讨论(0)
  • 2020-12-05 22:34

    Check out the following SO post: How to embed a YouTube clip in a WebView on Android

    Try the following code which may help you. I just framed it for your reference

    myWebView = (WebView) findViewById( R.id.webview_compontent );
    
    String playVideo= "<html><body>Youtube video .. <br> <iframe class=\"youtube-player\" type=\"text/html\" width=\"640\" height=\"385\" src=\"http://www.youtube.com/embed/bIPcobKMB94\" frameborder=\"0\"></body></html>"
    
    myWebView.loadData(playVideo, "text/html", "utf-8");
    

    Refer the following link for how to use Webview: http://developer.android.com/reference/android/webkit/WebView.html

    0 讨论(0)
  • 2020-12-05 22:34
    public class webview_youtube extends Activity{
    
        String video_id = "";
        ImageView back_btn;
        ProgressBar progressBar;
        html = "";
        WebView webView;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            setContentView(R.layout.video_screen);
    
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    
    
    
                video_id = "KK9bwTlAvgo";
    
    
            initializeViews();
        }
    
        public void initializeViews() {
            try {
    
                webView = (WebView) findViewById(R.id.webView);
                progressBar = (ProgressBar) findViewById(R.id.progressBar);
    
                if (video_id.equalsIgnoreCase("")) {
                    finish();
                    return;
                }
    
                WebSettings ws = webView.getSettings();
                ws.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
                ws.setPluginState(WebSettings.PluginState.ON);
                ws.setJavaScriptEnabled(true);
                webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
                webView.reload();
    
    
                    html = getHTML(video_id);
    
                webView.loadData(html, "text/html", "UTF-8");
    
                WebClientClass webViewClient = new WebClientClass(progressBar);
                webView.setWebViewClient(webViewClient);
                WebChromeClient webChromeClient = new WebChromeClient();
                webView.setWebChromeClient(webChromeClient);
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            try {
                webView.loadData("", "text/html", "UTF-8");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        @Override
        public void onBackPressed() {
            super.onBackPressed();
            try {
                webView.loadData("", "text/html", "UTF-8");
                finish();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    
        public class WebClientClass extends WebViewClient {
            ProgressBar ProgressBar = null;
    
            WebClientClass(ProgressBar progressBar) {
                ProgressBar = progressBar;
            }
    
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                ProgressBar.setVisibility(View.VISIBLE);
            }
    
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                ProgressBar.setVisibility(View.GONE);
            }
    
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                Log.i("webview-click :", "" + url.toString());
    
                //her the youtube url gets loaded to show video
                view.loadUrl(getHTML(video_id));
                return true;
            }
        }
    
        public String getHTML(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";
            Log.i("video-id from html url= ", "" + html);
            return html;
        }
    
    }
    
    0 讨论(0)
  • 2020-12-05 22:43

    Add WebView in XML File

    <?xml version="1.0" encoding="utf-8"?>
    <WebView  xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    />
    

    And in Java File

    String frameVideo = "<html><body>Youtube video .. <br> <iframe width="320" height="315" src="https://www.youtube.com/embed/lY2H2ZP56K4" frameborder="0" allowfullscreen></iframe></body></html>";
    
    WebView displayVideo = (WebView)findViewById(R.id.webView);
    
    displayVideo.loadData(frameVideo, "text/html", "utf-8");
    

    For Tutorial:

    1. How to embed youtube video in android

    2. Android WebVew tutorial with example

    0 讨论(0)
提交回复
热议问题