Android: 同步两个 mediaPlayer(一个接一个播放)- 消除间隙
Android: sync two mediaPlayers (play one after another) - remove gap
我在我的应用程序中使用了两个媒体播放器。我想播放第一首歌曲 (mp1),然后播放第二首歌曲 (mp2)。但是这些歌曲之间有一点gap/silence。有可能以某种方式删除吗?
我在 OnCreate() 方法中创建了 MediaPlayer(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 所建议的那样)是正确且好的解决方案。
我在我的应用程序中使用了两个媒体播放器。我想播放第一首歌曲 (mp1),然后播放第二首歌曲 (mp2)。但是这些歌曲之间有一点gap/silence。有可能以某种方式删除吗?
我在 OnCreate() 方法中创建了 MediaPlayer(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 所建议的那样)是正确且好的解决方案。