ExoPlayer in Android with Example
ExoPlayerView is one of the most used UI components in many apps such as YouTube, Netflix, and many video streaming platforms. ExoPlayerView is used for audio as well as video streaming in Android apps. Many Google apps use ExoPlayerView for streaming audios and videos. ExoPlayer is a media player library that provides a way to play audio and video with lots of customization in it. It is an alternative that is used to play videos and audios in Android along with MediaPlayer. ExoPlayer is a library that is the best alternative source for playing audio and videos on Android. This library will also help you to customize your media player according to our requirements.
Advantages of Using ExoPlayer
- ExoPlayer provides the support for the playlist and with this, you can clip or merge your media.
- With the help of ExoPlayer, you can directly fetch media files such as audios and videos directly from the internet and play them inside the ExoPlayer.
- It provides smooth encryption and streaming of video and audio files.
- ExoPlayer provides you the ability to customize your media player according to your requirements.
ExoPlayer vs MediaPlayer
|ExoPlayer supports dynamic streaming over HTTP.||MediaPlayer does not support dynamic support over HTTP.|
|It provides smooth streaming and encryption for the played video.||MediaPlayer does not provide smooth streaming and encryption for the video.|
|ExoPlayer provides support to clip or merge your media files.||MediaPlayer does not provide any support for clipping and merging of media files.|
|ExoPlayer can be customized according to our requirements.||MediaPlayer cannot be customized according to our requirements.|
|ExoPlayer is able to stream audio and video files directly from the server without downloading.||Media Player is not able to play audio and video files directly from the server.|
|ExoPlayer is released in API level 16 and it will not work on the device below API level 16.||Media Player was released in API level 1 and it works on all devices.|
|ExoPlayer easily handles buffering of audio and video files.||Media Player is not able to handle buffering of audio and videos.|
Step by Step Implementation of ExoPlayer in Android
We will be creating a simple video player app in which we will be fetching a video from a URL and play that video inside our ExoPlayer. Note that we are using JAVA for implementing ExoPlayer in Android.
Step 1: Create a New Project
To create a new project in Android Studio please refer to How to Create/Start a New Project in Android Studio. Note that select Java as the programming language.
Step 2: Add dependency to the build.gradle(Module:app)
Navigate to the Gradle Scripts > build.gradle(Module:app) and add the below dependency in the dependencies section.
// dependency for exoplayer
// for core support in exoplayer.
// for adding dash support in our exoplayer.
// for adding hls support in exoplayer.
// for smooth streaming of video in our exoplayer.
// for generating default ui of exoplayer
After adding this dependency sync the project.
Step 3: Add internet permission in your Manifest file
Navigate to the app > manifest folder and write down the following permissions to it.
<!–Internet permission and network access permission–>
Step 4: Working with the activity_main.xml
Now we will start implementing our ExoPlayerView in our XML file. Navigate to the app > res > layout > activity_main.xml. Inside that file add the below code.
Step 5: Working with the MainActivity.java file
Navigate to the app > java > your apps package name > MainActivity.java file. Inside that file add the below code. Comments are added inside the code to understand the code in more detail.
Note: We have used this video in this project.
Check out the project: https://github.com/ChaitanyaMunje/QRCodeGenerator/tree/ExoPlayer