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:
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) {} }}