mediaplayer android8,android – 如何使用MediaPlayer同时播放多首曲...

我有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

然后在暂停/恢复后它会发挥完美.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值