Step-by-Step Guide: Creating an Audio Player for Android using MediaPlayer and SeekBar
Explore in our latest blog post how to develop a user-friendly audio player for Android using MediaPlayer and SeekBar. Learn step by step how to implement play/stop functions and dynamically change the song position. Dive into the world of Android development and take your music apps to the next level!
Android MediaPlayer
The MediaPlayer class is used for playing audio and video files. The commonly used methods of the MediaPlayer class are:
start()
stop()
release()
– To avoid memory leaks.seekTo(position)
– This is used with the SeekBar.isPlaying()
– Indicates whether the song is playing or not.getDuration()
– Used to get the total duration, which helps determine the upper limit of our SeekBar. This function returns the duration in milliseconds.setDataSource(FileDescriptor fd)
– Used to set the file to be played.setVolume(float leftVolume, float rightVolume)
– Used to set the volume level. The value is a float number between 0 and 1.
Project Structure
We need three things to create an application that plays audio and allows you to change the position of the current song track:
- MediaPlayer
- SeekBar with Text – To display the current progress time next to the thumb.
- Runnable Thread – To update the SeekBar.
Conclusion
By clicking on the FloatingActionButton, the playSong
function is triggered, where we pause the song and reset the MediaPlayer. Once mediaPlayer.prepare()
is called, the song details are available. We can now get the duration and set it to the maximum position of the SeekBar. Setting setLooping
to false
prevents the song from playing infinitely until the user stops it. We start the thread that triggers the run
method, which is part of the Runnable
interface we implemented. Within the run
method, we update the progress every second, triggering the onProgressChanged
method of the SeekBar listener. When the user stops dragging the SeekBar, onStopTrackingTouch
is triggered, where we update the song position on the MediaPlayer instance with the seekTo
method. Once the song is completed, we reset the position of the SeekBar and release the MediaPlayer instance.
Closing Words
This tutorial demonstrates how to implement a simple audio player in your Android application. You can download the project from GitHub and play the song yourself.