0

我正在尝试为一个简单的小型 Java 游戏添加配乐,并且我已经研究了如何在我拥有可编译代码的范围内做到这一点。但是,当我运行它时,我得到一个 FileNotFound 异常。我正在使用 Eclipse,我的 wav 文件与 .class 文件位于同一目录中。

这是我的例外:

java.io.FileNotFoundException: bach.wav (没有这样的文件或目录)

我的音乐播放器代码:

public static void play()
{
  try
  {
      Clip clip = AudioSystem.getClip();
      clip.open(AudioSystem.getAudioInputStream(new File("bach.wav")));
      clip.start();
  }
  catch (Exception exc)
  {
      exc.printStackTrace(System.out);
  }
 }
4

3 回答 3

2

AudioSystem.getAudioInputStream有一个重载的方法,它需要一个URL. 这将根据需要使用缓冲流。由于该.wav文件与类文件位于同一位置,您可以使用getResource

AudioSystem.getAudioInputStream(getClass().getResource("bach.wav"));

playstatic需要:

AudioSystem.getAudioInputStream(MyClass.class.getResource("bach.wav"));
于 2012-12-13T01:19:59.210 回答
1

当您说new File("bach.wav")您必须将文件放在项目的根文件夹中时 src 和 bin 文件夹

于 2012-12-13T01:19:20.283 回答
0

尝试改变:

new File("bach.wav")

到:

new File("bach.wav").getAbsolutePath()
于 2012-12-13T01:24:49.367 回答