使用 Android MediaPlayer 同时播放 3 个音频

3 audios at the same time with Android MediaPlayer

我正在尝试播放 3 个音频宽度 Android 但不是同时播放,我的代码是下一个:

                for (Word w : wordsList){
                    String path = Parameters.PATH_AUDIO + "/" + w.getAudioPath();
                    Uri audioPath = Uri.parse(path);
                    MediaPlayer audio1 = MediaPlayer.create(context, audioPath);
                    audio1.start();
                }

但所有音频至少同时开始播放。我需要像 audio1.wait()audio1.sleep 或这样的人。

您可能要考虑使用 setOnCompletionListener:

audio1.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
public void onCompletion(MediaPlayer player) {

      //do something when audio is finished   

}});

这是一个例子(虽然没有机会尝试):

在 class 级别对这些贴花:

int index = 0;
MediaPlayer audio1;

然后:

try {
        audio1 = MediaPlayer.create(this, Uri.parse(yourList.get(index)));
        audio1.start();
        index++;

        audio1.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            public void onCompletion(MediaPlayer player) {

                if (index < yourList.size()) {
                    audio1.reset();
                    audio1 = MediaPlayer.create(MainActivity.this,
                            Uri.parse(yourList.get(index)));
                    audio1.start();
                    index++;
                }
                else
                {
                    //release it
                }

            }
        });

    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SecurityException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }