Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中快速连续地发出声音?_Java_Audio - Fatal编程技术网

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

如何在Java中快速连续地发出声音?,java,audio,Java,Audio,因此,请提供一点背景信息: 我正在制作一个自上而下的僵尸波生存游戏,并且一直在使用javax.sound.sampled中的Java剪辑,我可以毫不费力地加载和播放声音,但在我的游戏中有自动武器,它们需要以相当快的速度反复播放相同的声音。当前,每个枪对象持有一个剪辑场,该剪辑场被停止,设置为第0帧,并在每次枪开火时播放。这导致一些枪的发射速度如此之快,甚至听不到声音。我想我可以通过每次播放声音时创建一个新的剪辑来解决这个问题,但这是最有效的解决方案吗?Java Sound API中是否还有其他东

因此,请提供一点背景信息: 我正在制作一个自上而下的僵尸波生存游戏,并且一直在使用javax.sound.sampled中的Java剪辑,我可以毫不费力地加载和播放声音,但在我的游戏中有自动武器,它们需要以相当快的速度反复播放相同的声音。当前,每个枪对象持有一个剪辑场,该剪辑场被停止,设置为第0帧,并在每次枪开火时播放。这导致一些枪的发射速度如此之快,甚至听不到声音。我想我可以通过每次播放声音时创建一个新的剪辑来解决这个问题,但这是最有效的解决方案吗?Java Sound API中是否还有其他东西可以让我轻松做到这一点?非常感谢你的帮助


编辑:我被告知要添加这些信息,循环播放声音不能作为解决方案,因为它会完全播放声音,然后再播放,但声音本身比两次发射之间的时间长,因此每个声音都需要一些重叠。

使用固定的剪辑阵列,尺寸应根据实验得出。我们还将保留正在播放的最新声音的索引


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

使用固定的剪辑数组,大小应根据实验得出。我们还将保留正在播放的最新声音的索引


当枪发射时,增加索引(环绕),停止并开始阵列中的下一个剪辑。(我们需要停止剪辑,以防剪辑太长而仍在播放)。

我看到,它会完全播放声音,然后再播放,但声音本身比两次发射之间的时间长,所以每个声音都需要有一些重叠。你能把它添加到你的问题中,这样问题就更清楚了吗?至于解决方案,也许你可以有一个剪辑数组(一个固定的数组,但数字应该来自实验),这样当枪发射时,你就可以停止并开始数组中的下一个(环绕)剪辑。是的,成功了,你能把它附加到你的答案中,这样我就可以接受它吗?正如你所知,阵列中的4个片段对我最快的枪都有效。编辑后只包含答案。我已经看到,它会完全播放声音,然后再次播放,但声音本身比两次发射之间的时间长,所以每个声音都需要有一些重叠。你能把它添加到你的问题中,这样问题就更清楚了吗?至于解决方案,也许你可以有一个剪辑数组(一个固定的数组,但数字应该来自实验),这样当枪发射时,你就可以停止并开始数组中的下一个(环绕)剪辑。是的,成功了,你能把它附加到你的答案中,这样我就可以接受它吗?正如你所知道的,阵列中的4个剪辑甚至适用于我最快的枪。编辑为只包含答案。