尝试下面的例子:
MediaPlayer mp1, mp2;
Timer timer;
// Create two different instances of mediaplayer
mp1 = MediaPlayer.create(MainActivity.this, R.raw.a1);
mp2 = MediaPlayer.create(MainActivity.this, R.raw.a2);
// Create the timertask
timer = new Timer("mytimer");
timer.schedule(timertask1, 1000);
onCompletionListeners:
// Completion listener for Audio file 1.
mp1.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(final MediaPlayer cim) {
//On completion of first audio, release the resources of mediaplayer
mp1.release();
mp1 = null;// free up memory
// Start the timertask of 2nd audio file
timer = new Timer("mytimer");
timer.schedule(timertask2, 1000);
}
});
mp2.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(final MediaPlayer cim) {
//On completion of 2nd audio, release the resources of mediaplayer
mp2.release();
mp2 = null;
// Start the timertask of 1st audio file or nxt audio file if you want to play file or simplly you can stop here.
timer = new Timer("mytimer");
timer.schedule(timertask1, 1000);
}
});
定时器任务:
private TimerTask timertask1 = new TimerTask() {
@Override
public void run() {
mp1.start();
}
};
private TimerTask timertask2 = new TimerTask() {
@Override
public void run() {
mp2.start();
}
};
注:
示例仅考虑两个音频文件,因此有两个特定的onCompletionlisteners和timertasks。不过,我建议你使用通用代码来创建mediaplayer实例,onCompletionlistener和timertask。