如何在java中播放wav文件



我知道这是一个已经问过的问题,但我无法得到答案

我找到了播放声音的方法:

Clip sound = AudioSystem.getClip();
sound.open(AudioSystem.getAudioInputStream(new File("path/to/sound")));
sound.start();

但问题是,我在游戏循环中运行这段代码,我想以一种方式来构建它,这样我就不需要每次都从输入中读取声音,但我已经将声音保存在内存中,所以我不必每次都加载它。

我试着做这样的事情:

Clip sound = AudioSystem.getClip();
sound.open(AudioSystem.getAudioInputStream(new File("path/to/sound")));
while(true)
{
sound.start();

}

也像这个

AudioStream audiostream = AudioSystem.getAudioInputStream(new File("path/to/sound"));
while(true)
{
Clip sound = AudioSystem.getClip();
sound.open(AudioSystem.getAudioInputStream(audiostream));
sound.start();
}

但它不起作用,或者只起1次的作用

创建一个实例变量是一个很好的方法。

要再次播放声音,请首先将帧位置设置为第0帧或毫秒。play((方法总是从声音停止的地方开始。

因此:

while(true) {
sound.setFramePosition(0);
sound.play();
...
}

剪辑(Java SE 15和JDK 15(

音频片段的播放可以使用启动来启动和停止和停止方法。这些方法不会重置媒体位置;开始使播放从上次播放的位置继续停止。从剪辑音频的开头重新开始播放数据,只需在调用带有setFramePosition(0(的stop之后,其将媒体倒带到剪辑的开头。

最新更新