I am playing a sound file using this code inside a broadcast receiver activity:
notification.sound = Uri.parse("android.resource://emad.app/raw/seven_chimes");
I would like to detect when this file has finished playing.
I tried a loop like this but I think this is only good for the media player because it always = false even though I made sure the sound file was still playing:
/*
* Stay here until the chime sound is finished.
*/
while (manager.isMusicActive()){
}
Can you show me what I should use instead of manager.isMusicActive()
?
You can use the MediaPlayer class and add a Completion listener to be activated when the sound finishes playing
MediaPlayer mp = MediaPlayer.create(this,Uri.parse("android.resource://emad.app/raw/seven_chimes"));
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
performOnEnd();
}
});
mp.start();