我在我的应用程序中使用背景音乐,但我注意到,在我升级我的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
。
这为我解决了循环问题。