如何在Java中快速连续发出一个声音?

时间:2012-05-30 01:04:29

标签: java audio

所以一点背景信息: 我正在制作一个自上而下的Zombie-Wave-Survival游戏,并且一直在使用来自javax.sound.sampled的Java剪辑,我可以毫无困难地加载和播放声音,但在我的游戏中有自动武器,需要玩同样的声音在相当快速的连续中一遍又一遍。目前,每个Gun对象都持有一个Clip字段,该字段被停止,设置在第0帧,并在每次枪发射时播放。这导致一些枪甚至听不到它们如此快速地发射。我想我可以通过每次必须播放声音时创建一个新的Clip来解决这个问题,但这是最有效的解决方案吗? Java Sound API中还有其他东西可以让我轻松完成吗?非常感谢您的帮助!

编辑:我已经被告知要添加这些信息,循环声音不会起到解决作用,因为它会完全播放声音然后重新播放,但声音本身比发射之间的时间长,所以会有需要在每个声音中有一些重叠。

1 个答案:

答案 0 :(得分:1)

使用固定数组的Clips,大小应该来自实验。我们还将保留最新播放声音的索引

当枪被射击时,增加索引(环绕),停止并启动阵列中的下一个Clip。 (我们需要停止剪辑,以防剪辑太长并且仍在播放)。