我有一个背景音乐循环。但它循环不好,每次循环结束时都会有半秒没有音乐。mp3 文件是完美的,没有音乐就没有一秒钟。是 MediaPlayer 的错吗?
问问题
364 次
2 回答
1
从 Jellybean (Android 4.1) 开始,您可以对 MediaPlayers 进行“链接”。在当前播放的 MediaPlayer 完成之前,调用setNextMediaPlayer,下一个 MediaPlayer 会在当前播放完成后尽快自动启动,以避免出现间隙。
请注意,您不能将当前播放的 MediaPlayer 实例设置为下一个。因此,为了使用它来循环播放歌曲,您必须创建 2 个具有相同数据源的 MediaPlayer 实例并在它们之间交替。
于 2012-12-29T12:06:43.273 回答
0
SoundPool在这方面做得更好。
SoundPool 是一组样本,可以从 APK 内的资源或文件系统中的文件加载到内存中。SoundPool 库使用 MediaPlayer 服务将音频解码为原始的 16 位 PCM 单声道或立体声流。这允许应用程序发送压缩流,而不必在播放期间承受 CPU 负载和解压缩延迟。
请记住,这可能会占用大量内存,具体取决于您的音乐文件的长度。
于 2012-12-29T11:08:45.197 回答