如何循环背景音乐?

时间:2015-07-08 17:27:07

标签: android media-player

我在我的应用程序中使用背景音乐但是我注意到在我将我的Android版本升级到棒棒糖5.0之后,背景音乐不是从第一个节拍开始而是音乐停止为500个然后重复。我确定问题是因为棒棒糖。任何想法如何解决它?

public boolean playBackgroundMusic(int id){     
    loopMusic = MediaPlayer.create(context, id);
    try {
        loopMusic.prepare();
    } catch (IllegalStateException | IOException e) {
        e.printStackTrace();
    }

    loopMusic.setLooping(true);
    loopMusic.start();
    return loopMusic.isPlaying();
}

2 个答案:

答案 0 :(得分:0)

可能是由于MediaPlayer的缓冲机制发生了变化。 MediaPlayer是一个流式播放器,它不一定会将整个音频保留在内存中,并且可能需要在播放之前在后台缓冲流。

如果您想要响应式循环,则应考虑使用SoundPool

来自文档:

  

这允许应用程序[...]而不必承受CPU负载   和播放期间解压缩的延迟。

答案 1 :(得分:0)

为什么不试试 setNextMediaPlayer(mp)?不要使用 setLooping()。 您需要在MediaPlayer结束时制定方法,一遍又一遍地设置下一个MediaPlayer

这解决了我的循环问题。希望它有所帮助。