我正在尝试为一个简单的小型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);
}
}
答案 0 :(得分:2)
AudioSystem.getAudioInputStream
有一个overloaded method,需要URL
。这将根据需要使用缓冲流。由于.wav
文件与类文件位于同一位置,因此您可以使用getResource
:
AudioSystem.getAudioInputStream(getClass().getResource("bach.wav"));
由于play
为static
,您需要:
AudioSystem.getAudioInputStream(MyClass.class.getResource("bach.wav"));
答案 1 :(得分:0)
当您说new File("bach.wav")
时,您必须将文件放在项目的根文件夹中,其中src和bin文件夹是
答案 2 :(得分:0)
尝试改变:
new File("bach.wav")
为:
new File("bach.wav").getAbsolutePath()