繁体   English   中英

如何在 java 中播放 wav 文件?

[英]How to play wav file in java?

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

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

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

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

我试着做这样的事情:

 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 次

创建实例变量是 go 的好方法。

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

因此:

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

剪辑(Java SE 15 和 JDK 15)

可以使用 start 和 stop 方法开始和停止音频剪辑的播放。 这些方法不会重置媒体 position; start 导致从上次停止播放的 position 继续播放。 要从剪辑的音频数据的开头重新开始播放,只需使用 setFramePosition(0) 调用 stop,这会将媒体倒回到剪辑的开头。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM