如何在Android中的不同设备上以准确的时间段播放声音

Mar*_*res 13 android soundpool

我正在Android中开发游戏,我遇到了一个非常烦人,难以找到的错误.问题在于,当您使用SoundPool播放声音时,您实际上可以循环播放您正在播放的任何声音.在这种情况下,问题是"跑步"声音; 400ms当主角运行时,这个声音会非常快速地连续(大约每一个)执行.

现在当在普通(不是那么强大的)设备上播放声音时,例如三星SII,每次播放声音500ms- 但是,如果我在另一台设备上运行相同的代码(比方说,三星SIV,三星SIII),声音播放快两倍甚至三倍.

看起来设备硬件规格越强大,它的播放速度就越快.在某些设备上,它播放速度非常快,几乎可以听到一个稳定的连续声音.我一直在寻找在声音播放之间的时间段设置特定比率的技术,但它不能正常工作,问题仍然存在.有谁知道如何解决它,或者使用SoundPool,MediaPlayer或任何其他声音控制在Android API?

lel*_*man 1

您可以使用AudioTrack播放连续的 PCM 数据流,因为您将传递一个流,您可以确定声音之间的间隔。缺点是第一次启动声音时可能会有点延迟,但这取决于最小缓冲区大小,而且我认为这取决于 Android 版本和设备。在我的 Galaxy s2 Android 4.1 上,大约为 20 毫秒。
如果您认为这可能是一个选择,我可以发布一些代码