2013-02-18 93 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