How do i use the OnCompletion listener for some music? I would like to press a button to go to another activity that plays some music and then goes back when the music playback is finished. I allready coded the other stuff. I just cant figure out how to use the OnCompletion listener?
Asked
Active
Viewed 4.3k times
4 Answers
60
You should put the code that should be run when the music is completed in the OnCompletionListener
, for example:
mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
finish(); // finish current activity
}
});

MByD
- 135,866
- 28
- 264
- 277
8
mPlayer.setOnErrorListener(new OnErrorListener() {
public boolean onError(MediaPlayer paramMediaPlayer, int paramInt1,int paramInt2) {
// TODO Auto-generated method stub
//your code if any error occurs while playing even you can show an alert to user
return true;
}
});
mPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
//your code if the file was completely played either show an alert to user or start another activity or file.
//even you can finish you activity here
}
});

Ishu
- 5,357
- 4
- 16
- 17
6
I find that above are correct however I was struggling on where to place the code. See below, i place this code after my code to start the tune!
playButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer.start(); //Next line is the beginning of where to place the code.
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
Toast.makeText(MainActivity.this, "I'm Finished", Toast.LENGTH_SHORT).show();
}
});
}
});

Daniel Box
- 3
- 3

tom1988
- 91
- 1
- 11
1
here is the kotlin version of setOnCompletionListener :
mediaPlayer.setOnCompletionListener(MediaPlayer.OnCompletionListener { it // this is MediaPlayer type
Log.d(TAG,"setOnCompletionListener OnCompletionListener called")
// do other task
})

SM Abu Taher Asif
- 2,221
- 1
- 12
- 14