【发布时间】:2014-01-23 16:09:52
【问题描述】:
我有 8 个 mp3 文件。而且我必须同时播放它(几乎不会。肯定会)。
我正在使用“AudaCity”来控制精度。但是我的代码没有给我想要的结果...
(异步 = 30~90 毫秒)
所以,这是我的代码:
(第一次开始玩)
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+
然后在暂停/恢复后播放完美。
【问题讨论】:
标签: android android-mediaplayer