4

我有一个游戏,游戏中每得分都会发出“叮”的声音。有时你可以很快连续得分。在这种情况下,我不允许重叠的声音,所以我isPlaying()在播放下一个声音之前等待媒体播放器的功能变为假。

到目前为止,在我尝试过的每部手机上(诚然,都是 2.2 或 2.3),结果是令人愉悦的快速连续的声音。

但刚才我用 4.0.3 试用了三星 Galaxy S II。在这台机器上,每个“叮”都被一个很长的间隙隔开。状态的isPlaying()持续时间似乎是声音本身的两倍。根据Audacity的说法,声音应该持续大约 0.1 秒,但 isPlaying() 会保持 0.28 秒。

声音从 Audacity 保存为 Ogg Vorbis 格式。

知道出了什么问题吗?

4

1 回答 1

2

最好SoundPool用于在游戏中播放快速采样,因为它们不会压缩一次并保存在内存中。MediaPlayer可能正在动态解码,导致准备就绪时出现延迟。不知道为什么设备之间存在如此大的差异,但我会尝试使用 SoundPool 看看它是否可以改进。

于 2012-05-30T15:51:35.410 回答