How to play YouTube video in my Android Application?


This example demonstrates how do I play Youtube video in android.

Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.

Step 2 – Add following the dependancies in the build.gradle (Module:app)

implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'

Step 3 − Add the following code to res/layout/activity_main.xml.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:padding="16sp"
   tools:context=".MainActivity">
   <android.support.v7.widget.RecyclerView
      android:id="@+id/recyclerView"
      android:layout_width="match_parent"
      android:layout_height="match_parent">
   </android.support.v7.widget.RecyclerView>
</RelativeLayout>

Step 4 – Create a layout resource file (Video_view.xml) and add the following code −

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

Step 5 – Create a java class youTubeVideos.java and the following code −

public class youTubeVideos {
   String videoUrl;
   public youTubeVideos() {
   }
   public youTubeVideos(String videoUrl) {
      this.videoUrl = videoUrl;
   }
   public String getVideoUrl() {
      return videoUrl;
   }
   public void setVideoUrl(String videoUrl) {
      this.videoUrl = videoUrl;
   }
}

Step 6 – Create a java class VideoAdapter.java and the following code −

import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import java.util.List;
public class VideoAdapter extends RecyclerView.Adapter<VideoAdapter.VideoViewHolder> {
   private List<youTubeVideos> youtubeVideoList;
   VideoAdapter(List<youTubeVideos> youtubeVideoList) {
      this.youtubeVideoList = youtubeVideoList;
   }
   @Override
   public VideoViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
      View view = LayoutInflater.from( parent.getContext()).inflate(R.layout.video_view, parent, false);
      return new VideoViewHolder(view);
   }
   @Override
   public void onBindViewHolder(VideoViewHolder holder, int position) {
      holder.videoWeb.loadData( youtubeVideoList.get(position).getVideoUrl(), "text/html" , "utf-8");
   }
   @Override
   public int getItemCount() {
      return youtubeVideoList.size();
   }
   class VideoViewHolder extends RecyclerView.ViewHolder{
      WebView videoWeb;
      VideoViewHolder(View itemView) {
         super(itemView);
         videoWeb = itemView.findViewById(R.id.webView);
         videoWeb.getSettings().setJavaScriptEnabled(true);
         videoWeb.setWebChromeClient(new WebChromeClient() {
         } );
      }
   }
}

Step 7 − Add the following code to src/MainActivity.java

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import java.util.Vector;
public class MainActivity extends AppCompatActivity {
   RecyclerView recyclerView;
   Vector<youTubeVideos> youtubeVideos = new Vector<>();
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      recyclerView = findViewById(R.id.recyclerView);
      recyclerView.setHasFixedSize(true);
      recyclerView.setLayoutManager( new LinearLayoutManager(this));
      youtubeVideos.add( new youTubeVideos("<iframe width=\"100%\" height=\"100%\" src=\"https://www" + ".youtube.com/embed/eWEF1Zrmdow\" frameborder=\"0\" allowfullscreen></iframe>") );
      youtubeVideos.add( new youTubeVideos("<iframe width=\"100%\" height=\"100%\" src=\"https://www" +".youtube.com/embed/KyJ71G2UxTQ\" frameborder=\"0\" allowfullscreen></iframe>") );
      youtubeVideos.add( new youTubeVideos("<iframe width=\"100%\" height=\"100%\" src=\"https://www" +".youtube.com/embed/y8Rr39jKFKU\" frameborder=\"0\" allowfullscreen></iframe>") );
      youtubeVideos.add( new youTubeVideos("<iframe width=\"100%\" height=\"100%\" src=\"https://www" +".youtube.com/embed/8Hg1tqIwIfI\" frameborder=\"0\" allowfullscreen></iframe>") );
      youtubeVideos.add( new youTubeVideos("<iframe width=\"100%\" height=\"100%\" src=\"https://www" +".youtube.com/embed/uhQ7mh_o_cM\" frameborder=\"0\" allowfullscreen></iframe>") );
      VideoAdapter videoAdapter = new VideoAdapter(youtubeVideos);
      recyclerView.setAdapter(videoAdapter);
   }
}

Step 8 − Add the following code to androidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="app.com.sample">
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
   <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
   <uses-permission android:name="android.permission.INTERNET" />
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:supportsRtl="true"
      android:theme="@style/AppTheme">
      <activity android:name=".MainActivity">
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
   </application>
</manifest>

Let's try to run your application. I assume you have connected your actual Android Mobile device with your computer. To run the app from android studio, open one of your project's activity files and click Run Play Icon icon from the toolbar. Select your mobile device as an option and then check your mobile device which will display your default screen –

Click here to download the project code.

Updated on: 03-Jul-2020

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements