【发布时间】:2018-01-23 18:38:50
【问题描述】:
我在我的 Java 项目中创建了一个名为声音的包,我的声音在这个包中。但是,我收到此代码的 java.io.FileNotFoundException 错误。那么我怎样才能给出这个文件的路径呢?
path="sounds/hit.wav"
路径如上所示
public class Sound {
AudioInputStream audio;
Clip clip;
//String path;
public void play(String path)
{
try{
File soundFile =new File(path);
audio = AudioSystem.getAudioInputStream(soundFile);
clip = AudioSystem.getClip();
clip.open(audio);
clip.start();
}
catch(Exception e)
{
e.printStackTrace();
}
}
我也试过这个,它给出了一个 IOException:
clip.open(AudioSystem.getAudioInputStream(
new BufferedInputStream(getClass().getResourceAsStream("/sounds/hit.wav"))));
你能告诉我如何解决这个问题吗?
这是我的文件结构:
【问题讨论】:
-
什么是 AudioSystem.getAudioInputStream();方法作为参数?字符串还是文件?
-
对不起,我编辑了,是文件。
-
是的,这就是我最初所做的,但它给出了 java.io.FileNotFoundException 错误。
-
Java 不会以某种方式将这些文件填充到您编译的字节码中。你必须得到一个构建过程来制作一个包含这些文件的 jar。我猜 Eclipse 可以从项目构建一个 jar,但我会让 Maven 使用
语句将该目录包含在 jar 构建中,然后使用 @Michał Tabor 的解决方案在运行时从 jar 加载它。