我在我的应用中使用了两个媒体播放器。我想播放第一首歌曲(mp1),然后播放第二首歌曲(mp2)。但是这些歌曲之间有一点差距/沉默。是否有可能以某种方式删除?

我在OnCreate()方法中创建MediaPlayers(mp1和mp2):

    mp1 = new MediaPlayer();
    mp1.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mp1.setOnCompletionListener(mySongCompletionListener1);

    mp2 = new MediaPlayer();
    mp2.setAudioStreamType(AudioManager.STREAM_MUSIC);

    mp1.setDataSource("/storage/emulated/0/IAMDJ/SAMPLES/Free Future Kits/Drop/WA FFHK Drop1.ogg");
    mp1.prepare();

    mp2.setDataSource("/storage/emulated/0/IAMDJ/SAMPLES/Free Future Kits/Verse/WA FFHK Verse1.ogg");
    mp2.prepare();

和:
private OnCompletionListener mySongCompletionListener1 = new OnCompletionListener() {
    @Override
    public void onCompletion(MediaPlayer mp) {
        mp2.start(); //first song finished, start second...
    }
};

注意:我不想使用SoundPool,因为它没有seekTo()。

是否可以消除沉默?

最佳答案

使用setNextMediaPlayer(按照Michael的建议)是正确且不错的解决方案。

10-08 18:07