Embed Youtube video inside an Android app Embed Youtube video inside an Android app android android

Embed Youtube video inside an Android app


there is an official YouTube Android Player API wich you can use. This is a bit more complicated but it is working better than other solutions using webclients.

First you must register your app in Googles API Console. This is completely free until your app gets over 25k request a month (or something like that). There are complete anf great tutorials under the link. I hope you can understand them. If not, ask! :)


How it looks:

enter image description here

Best solution to my case. I need video fit web view size.Use embed youtube link with your video id.Example:

WebView youtubeWebView; //todo find or bind web viewString myVideoYoutubeId = "-bvXmLR3Ozc";outubeWebView.setWebViewClient(new WebViewClient() {            @Override            public boolean shouldOverrideUrlLoading(WebView view, String url) {                return false;            }        });WebSettings webSettings = youtubeWebView.getSettings();webSettings.setJavaScriptEnabled(true);webSettings.setLoadWithOverviewMode(true);webSettings.setUseWideViewPort(true);youtubeWebView.loadUrl("https://www.youtube.com/embed/" + myVideoYoutubeId);

Web view xml code

<WebView        android:id="@+id/youtube_web_view"        android:layout_width="match_parent"        android:layout_height="200dp"/>


although I suggest to use youtube api or call new intent and make the system handle it (i.e. youtube app), here some code that can help you, it has a call to an hidden method because you can't pause and resume webview

import java.lang.reflect.Method;import android.annotation.SuppressLint;import android.os.Bundle;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.app.Activity;@SuppressLint("SetJavaScriptEnabled")public class MultimediaPlayer extends Activity{    private WebView mWebView;    private boolean mIsPaused = false;    @Override    protected void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.webview);        String media_url = VIDEO_URL;        mWebView = (WebView) findViewById(R.id.webview);        mWebView.setWebChromeClient(new WebChromeClient());        WebSettings ws = mWebView.getSettings();        ws.setBuiltInZoomControls(true);        ws.setJavaScriptEnabled(true);        mIsPaused = true;        resumeBrowser();        mWebView.loadUrl(media_url);    }    @Override    protected void onPause()    {        pauseBrowser();        super.onPause();    }    @Override    protected void onResume()    {        resumeBrowser();        super.onResume();    }    private void pauseBrowser()    {        if (!mIsPaused)        {            // pause flash and javascript etc            callHiddenWebViewMethod(mWebView, "onPause");            mWebView.pauseTimers();            mIsPaused = true;        }    }    private void resumeBrowser()    {        if (mIsPaused)        {            // resume flash and javascript etc            callHiddenWebViewMethod(mWebView, "onResume");            mWebView.resumeTimers();            mIsPaused = false;        }    }    private void callHiddenWebViewMethod(final WebView wv, final String name)    {        try        {            final Method method = WebView.class.getMethod(name);            method.invoke(mWebView);        } catch (final Exception e)        {}    }}