2013-02-18 98 views
0

后,我想打两个声音的项目,一个接一个的安卓播放两个声音一个接一个

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) ; 
} 

但只有第二个声音后产生。 有没有其他方法?

回答

3

我在代码中看不到任何等待机制。

当第一个MediaPlayer播放完毕后,您可以使用onCompletionListener接收回拨。此时您可以启动第二个MediaPlayer。

Jellybean(及更高版本)中的另一种方法是使用音频链接功能(即setNextMediaPlayer)在当前播放完成后立即自动启动另一个MediaPlayer。像这样的事情(为了简洁,我省略了对setDataSource等的呼叫):

mediaPlayer1.prepare(); 
mediaPlayer2.prepare(); 
mediaPlayer1.start(); 
mediaPlayer1.setNextMediaPlayer(mediaPlayer2); 
+0

可以分享一些snipet代码吗? – RDX 2013-02-19 04:37:01