如何循环播放背景音乐



我在我的应用程序中使用背景音乐,但我注意到,在我升级我的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();
}

这可能是由于MediaPlayer的缓冲机制发生了变化。MediaPlayer是一个流媒体播放器,不一定要保持整个音频在内存中,可能需要缓冲流在后台播放前。

如果你想要响应式循环,你应该考虑使用SoundPool

From the docs:

允许应用程序[…]]而不必承受CPU负载和播放时的解压延迟。

为什么不试试setNextMediaPlayer(mp)?不要使用 setloops ()。当MediaPlayer结束时,您需要创建一个方法来反复设置下一个MediaPlayer

这为我解决了循环问题。

最新更新