我有一个背景音乐循环。但它不能很好地循环,每次循环结束时,音乐都会有半秒钟。 mp3文件很完美,没有音乐就没有第二个。 它是MediaPlayer的错吗?
答案 0 :(得分:1)
从Jellybean(Android 4.1)开始,您可以对MediaPlayers进行“链接”。在当前正在播放的MediaPlayer完成之前,请致电setNextMediaPlayer,下一个MediaPlayer将在当前播放完毕后立即自动启动,以避免出现空白。
请注意,您不能将当前正在播放的MediaPlayer实例设置为下一个实例。因此,为了使用它来循环播放歌曲,您必须使用相同的数据源创建2个MediaPlayer实例并在它们之间交替。
答案 1 :(得分:0)
SoundPool做得更好。
SoundPool是可以加载到内存中的样本集合 来自APK内部的资源或文件系统中的文件。该 SoundPool库使用MediaPlayer服务解码音频 到原始的16位PCM单声道或立体声流。这允许应用程序 使用压缩流来运送而不必承受CPU负载 和播放期间解压缩的延迟。
请注意,这可能会占用大量内存,具体取决于音乐文件的持续时间。