Android: playing youtube video on Webview

13,170

try this

String frameVideo = "<html><body>Video From YouTube<br><iframe width=\"420\" height=\"315\" src=\"https://www.youtube.com/embed/47yJ2XCRLZs\" 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");

also set in manifist file android:hardwareAccelerated="true"

<application
    android:allowBackup="true"
    android:hardwareAccelerated="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

</application>
Share:
13,170

Related videos on Youtube

justo
Author by

justo

i'm in love with the app

Updated on June 20, 2022

Comments

  • justo
    justo about 2 years

    i've a problem to playing youtube video on a WebView. It's all day i reading question and answer on how to do this, but it doesn't work. I've already set the Manifest and this is the code i'm using

    mWebview.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return false;
            }
        });
    
    
        mWebview.getSettings().setPluginState(WebSettings.PluginState.ON);
        mWebview.setWebChromeClient(new WebChromeClient());
        mWebview.getSettings().setJavaScriptEnabled(true);
        mWebview.getSettings().setAppCacheEnabled(true);
        mWebview.setInitialScale(1);
        mWebview.getSettings().setLoadWithOverviewMode(true);
        mWebview.getSettings().setUseWideViewPort(true);
    
        //webSettings.setLoadsImagesAutomatically(true);
        //webSettings.setSupportZoom(false);
    
        mWebview.loadUrl("https://www.youtube.com/embed/MYVIDEOID");
    

    and what's happen is this i can click the play button the timer start but i can see nothing.

    EDIT: The problem seems on the emulator and not on real device, check the comment for the answer.