0

我有一个背景音乐循环。但它循环不好,每次循环结束时都会有半秒没有音乐。mp3 文件是完美的,没有音乐就没有一秒钟。是 MediaPlayer 的错吗?

4

2 回答 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 回答