1

2つのサウンドアイテムを次々に再生しようとしています

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

しかし、2番目の音だけが生成されます。別のアプローチはありますか?

4

1 に答える 1

5

コードに待機メカニズムが表示されません。

onCompletionListenerを使用して、最初のMediaPlayerの再生が終了したときにコールバックを受け取ることができます。その時点で、2番目のMediaPlayerを起動できます。

Jellybean(およびそれ以降のバージョン)の別の方法は、オーディオチェーン機能(つまり、setNextMediaPlayer)を使用して、現在のMediaPlayerの再生が終了するとすぐに別のMediaPlayerを自動的に起動することです。setDataSourceこのようなもの(簡潔にするためにetcへの呼び出しは省略しました):

mediaPlayer1.prepare();
mediaPlayer2.prepare();   
mediaPlayer1.start();
mediaPlayer1.setNextMediaPlayer(mediaPlayer2);
于 2013-02-18T15:05:57.380 に答える