我正在尝试播放两个声音项目,一个接一个
MediaPlayer mp = null;
protected void produceErrorSound(int index) {
if (mp != null) {
mp.reset();
mp.release();
}
mp = MediaPlayer.create(this, index);
mp.start();
}
public void correctAnswerAndNext(){
produceErrorSound(R.raw.right1) ;
produceErrorSound(R.raw.right1) ;
}
但只产生第二个声音。 有什么替代方法吗?
答案 0 :(得分:4)
我在代码中看不到任何等待机制。
当您的第一个MediaPlayer播放完毕后,您可以使用onCompletionListener接收回叫。此时,您可以启动第二个MediaPlayer。
Jellybean(及更高版本)中的另一种方法是使用音频链功能(即setNextMediaPlayer)在当前播放完毕后立即自动启动另一个MediaPlayer。这样的事情(为了简洁,我省略了对setDataSource
等的调用):
mediaPlayer1.prepare();
mediaPlayer2.prepare();
mediaPlayer1.start();
mediaPlayer1.setNextMediaPlayer(mediaPlayer2);