Steps to create a simple MediaPlayer in Android
Step 1: Create an empty activity project
- Create an empty activity Android Studio project. And select Kotlin as a programming language.
- Refer to Android | How to Create/Start a New Project in Android Studio? to know how to create an empty activity Android Studio project.
Step 2: Create a raw resource folder
- Create a raw resource folder under the res folder and copy one of the .mp3 file extension.
Step 3: Working with the activity_main.xml file
- The layout of the application consists of three buttons PLAY, PAUSE, and STOP mainly, which is used to control the state of the MediaPlayer instance.
- Invoke the following code inside the activity_main.xml file to implement the UI.
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" tools:context = ".MainActivity" tools:ignore = "HardcodedText" > < TextView android:id = "@+id/headingText" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_centerHorizontal = "true" android:layout_marginTop = "32dp" android:text = "MEDIA PLAYER" android:textSize = "18sp" android:textStyle = "bold" /> < LinearLayout android:layout_width = "match_parent" android:layout_height = "wrap_content" android:layout_below = "@id/headingText" android:layout_marginTop = "16dp" android:gravity = "center_horizontal" > < Button android:id = "@+id/stopButton" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_marginEnd = "8dp" android:backgroundTint = "@color/colorPrimary" android:text = "STOP" android:textColor = "@android:color/white" /> < Button android:id = "@+id/playButton" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_marginEnd = "8dp" android:backgroundTint = "@color/colorPrimary" android:text = "PLAY" android:textColor = "@android:color/white" /> < Button android:id = "@+id/pauseButton" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:backgroundTint = "@color/colorPrimary" android:text = "PAUSE" android:textColor = "@android:color/white" /> </ LinearLayout > </ RelativeLayout > |
Output UI:
Step 4: Working with the MainActivity.kt file
- The MediaPlayer instance needs the attributes needs to be set before playing any audio or video file.
- Invoke the following inside the MainActivity.kt file. Comments are added for better understanding.
Kotlin
import android.media.MediaPlayer import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super .onCreate(savedInstanceState) setContentView(R.layout.activity_main) // create an instance of mediplayer for audio playback val mediaPlayer: MediaPlayer = MediaPlayer.create(applicationContext, R.raw.music) // register all the buttons using their appropriate IDs val bPlay: Button = findViewById(R.id.playButton) val bPause: Button = findViewById(R.id.pauseButton) val bStop: Button = findViewById(R.id.stopButton) // handle the start button to // start the audio playback bPlay.setOnClickListener { // start method is used to start // playing the audio file mediaPlayer.start() } // handle the pause button to put the // MediaPlayer instance at the Pause state bPause.setOnClickListener { // pause() method can be used to // pause the mediaplyer instance mediaPlayer.pause() } // handle the stop button to stop playing // and prepare the mediaplayer instance // for the next instance of play bStop.setOnClickListener { // stop() method is used to completely // stop playing the mediaplayer instance mediaPlayer.stop() // after stopping the mediaplayer instance // it is again need to be prepared // for the next instance of playback mediaPlayer.prepare() } } } |
Output: Run on Emulator
MediaPlayer Class in Android
MediaPlayer Class in Android is used to play media files. Those are Audio and Video files. It can also be used to play audio or video streams over the network. So in this article, the things discussed are:
- MediaPlayer State diagram
- Creating a simple audio player using MediaPlayer API. Have a look at the following image. Note that we are going to implement this project using the Kotlin language.