我试图为一个简单的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);
}
}
AudioSystem.getAudioInputStream
有一个重载的方法,它接受一个URL
。这将根据需要使用缓冲流。由于.wav
文件与类文件位于同一位置,因此可以使用getResource
:
AudioSystem.getAudioInputStream(getClass().getResource("bach.wav"));
由于play
是static
,您将需要:
AudioSystem.getAudioInputStream(MyClass.class.getResource("bach.wav"));
当您说new File("bach.wav")
时,您必须将文件放在项目的根文件夹中,其中src和bin文件夹是
尝试更改:
new File("bach.wav")
至:
new File("bach.wav").getAbsolutePath()