我有一个游戏,其中为游戏中得分的每个点制作“叮”声。有时您可以快速连续得分。在这种情况下,我不允许重叠声音,所以我等待媒体播放器的isPlaying()
功能在播放下一个声音之前变为false。
在我迄今为止尝试的每部手机上(无论是2.2还是2.3),结果都是令人愉悦的快速连续声音。
但刚才我尝试过使用4.0.3的三星Galaxy S II。在这台机器上,每个“ding”由一个长间隙隔开。 isPlaying()
状态似乎比声音本身长两倍。根据{{3}},声音应该持续大约0.1秒,但isPlaying()保持真实.28秒。
声音从Audacity保存为Ogg Vorbis格式。
知道出了什么问题吗?
答案 0 :(得分:2)
最好使用SoundPool
在游戏中播放快速采样样本,因为它们只需要一次解压缩并保存在内存中。 MediaPlayer
可能正在进行解码,因为它准备就绪会导致延迟。不知道为什么设备之间存在这样的差异,但我会试试SoundPool,看看它是否有所改进。