Controlling Audio Player in Android Studio
Audio Player's audio is played and stopped mainly using tags
.
btnPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer!=null) mediaPlayer.release();
if (btnPlay.getTag()!=null && btnPlay.getTag().toString().contains("NOT_PLAYING")){
mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.offline_audio);
mediaPlayer.start();
btnPlay.setImageResource(R.drawable.stop);
btnPlay.setTag("PLAYING");
}else {
if (mediaPlayer!=null) mediaPlayer.release();
btnPlay.setImageResource(R.drawable.play);
btnPlay.setTag("NOT_PLAYING");
}
}
});
@Override
public void onClick(View v) {
if (mediaPlayer!=null) mediaPlayer.release();
if (btnPlay.getTag()!=null && btnPlay.getTag().toString().contains("NOT_PLAYING")){
mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.offline_audio);
mediaPlayer.start();
btnPlay.setImageResource(R.drawable.stop);
btnPlay.setTag("PLAYING");
}else {
if (mediaPlayer!=null) mediaPlayer.release();
btnPlay.setImageResource(R.drawable.play);
btnPlay.setTag("NOT_PLAYING");
}
}
});
Now another problem is that when the song is finished playing, it plays alone The icon is not changing. To do this another set OnCompletionListener method Should be written.
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
btnPlay.setImageResource(R.drawable.play);
btnPlay.setTag("NOT_PLAYING");
}
});
@Override
public void onCompletion(MediaPlayer mp) {
btnPlay.setImageResource(R.drawable.play);
btnPlay.setTag("NOT_PLAYING");
}
});
Finally, if we write the complete code it will look like this.
btnPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer!=null) mediaPlayer.release();
if (btnPlay.getTag()!=null && btnPlay.getTag().toString().contains("NOT_PLAYING")){
mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.offline_audio);
mediaPlayer.start();
btnPlay.setImageResource(R.drawable.stop);
btnPlay.setTag("PLAYING");
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
btnPlay.setImageResource(R.drawable.play);
btnPlay.setTag("NOT_PLAYING");
}
});
}else {
if (mediaPlayer!=null) mediaPlayer.release();
btnPlay.setImageResource(R.drawable.play);
btnPlay.setTag("NOT_PLAYING");
}
}
});
@Override
public void onClick(View v) {
if (mediaPlayer!=null) mediaPlayer.release();
if (btnPlay.getTag()!=null && btnPlay.getTag().toString().contains("NOT_PLAYING")){
mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.offline_audio);
mediaPlayer.start();
btnPlay.setImageResource(R.drawable.stop);
btnPlay.setTag("PLAYING");
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
btnPlay.setImageResource(R.drawable.play);
btnPlay.setTag("NOT_PLAYING");
}
});
}else {
if (mediaPlayer!=null) mediaPlayer.release();
btnPlay.setImageResource(R.drawable.play);
btnPlay.setTag("NOT_PLAYING");
}
}
});

Post a Comment