How to play YouTube video in app using YouTube API V3
We can play YouTube video using WebView but this method is not working well because our app got high space on RAM that was the reason of developing YouTube API.
API has several versions but we can use V3 this version is latest and it has a lot of new feature like we can play video horizontally and we can play without using listener.
Steps
First step is to create a google account. Everyone know that how to create a google account so I cannot explain this.
Second step is Download Youtube api from developer website. Link
Third step is click on android and then select project.
Fourth step is to paste that library in libs folder.
Fifth Step is to add dependency and then click on sync.
Six Step is to enable api from google developer and then create api.
Last Step is to add api in java code. Please follow my steps video is below the activity_main.xml.
Code
Build.gradule
implementation files('libs\\YouTubeAndroidPlayerApi.jar')
MainActivity.java
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.google.android.youtube.player.YouTubeBaseActivity; import com.google.android.youtube.player.YouTubeInitializationResult; import com.google.android.youtube.player.YouTubePlayer; import com.google.android.youtube.player.YouTubePlayerView; public class MainActivity extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener ,YouTubePlayer.PlaybackEventListener,YouTubePlayer.PlayerStateChangeListener { YouTubePlayerView youTubePlayerView; String api_key="paste api here"; String video_id="gFQmOMZEBj8";// this is video api which is play @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate ( savedInstanceState ); setContentView ( R.layout.activity_main ); youTubePlayerView=(YouTubePlayerView )findViewById ( R.id.youtubePlayer ); youTubePlayerView.initialize ( api_key,this ); } @Override public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) { } @Override public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) { youTubePlayer.setPlayerStateChangeListener ( this ); youTubePlayer.setPlaybackEventListener ( this ); if(!b) { youTubePlayer.cueVideo ( video_id ); } } @Override public void onPlaying() { } @Override public void onPaused() { } @Override public void onStopped() { } @Override public void onBuffering(boolean b) { } @Override public void onSeekTo(int i) { } @Override public void onLoading() { } @Override public void onLoaded(String s) { } @Override public void onAdStarted() { } @Override public void onVideoStarted() { } @Override public void onVideoEnded() { } @Override public void onError(YouTubePlayer.ErrorReason errorReason) { } }
Activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <com.google.android.youtube.player.YouTubePlayerView android:layout_width="match_parent" android:layout_height="320dp" android:id="@+id/youtubePlayer" android:background="#fff" > </com.google.android.youtube.player.YouTubePlayerView> </RelativeLayout>