我有8个mp3文件.我必须同时播放它(不是很接近.肯定会).
我使用’AudaCity‘来控制精度.但我的代码没有给我想要的结果……(异步= 30~90 ms)
所以,这是我的代码:
(首次开始玩)
public void start() {
//songInfo.getMediaPlayer() - it's array of MediaPlayers, source already setted
for (MediaPlayer player : songInfo.getMediaPlayer()) {
try {
if (player != null) {
player.prepare();
player.seekTo(0);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
songInfo.getMediaPlayer()[0]
.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
//code for play next setlist
}
});
resume();
}
(暂停)
public void pause() {
for (MediaPlayer player : songInfo.getMediaPlayer()) {
if (player != null)
player.pause();
}
}
(暂停后恢复,开始播放(第一种方法))
public void resume() {
int pos = songInfo.getMediaPlayer()[0].getCurrentPosition();
long iTime = System.currentTimeMillis();
for (MediaPlayer player : songInfo.getMediaPlayer()) {
if (player != null) {
player.seekTo(pos + (int)(System.currentTimeMillis()-iTime));
player.start();
}
}
}
如果我在第一次开始播放它会给我异步~30ms
然后在暂停/恢复后它会发挥完美.