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