找不到声音文件,不在目录中?

时间:2014-04-24 08:08:06

标签: java audio

我在java中对此进行编码并将sounds文件夹与bgmusic.wav放在一起,但它似乎仍未识别出来。我做错了吗?

这是我的Sound课程:

import java.applet.Applet;
import java.applet.AudioClip;
import java.io.File;
import java.net.MalformedURLException;

public class Sound {
    private AudioClip myClip;
    public Sound(String fileName) {
        try {
            File file = new File(fileName);
            if (file.exists()) {
                myClip = (AudioClip) Applet.newAudioClip(file.toURI().toURL());
            } else {
                throw new RuntimeException("Sound: file not found: " + fileName);
            }
        } catch (MalformedURLException e) {
            throw new RuntimeException("Sound: malformed URL: " + e);
        }
    }
    public void play() {
        myClip.play();
    }
}

然后在我的另一个类中作为Object运行,以运行bgmusic.wav

String fileName = "bgmusic.wav";
String soundDir = "." + File.separator + "sounds" + File.separator;
String filePath = soundDir + fileName;
Sound bgMusic = new Sound(filePath);
    bgMusic.play();

如果我没有弄错,我想我已经正确设置了所有内容,但是我的Sound: file not found: ./sounds/bgmusic.wav类中的throw异常返回Sound。由于我将sounds文件夹作为传递./sounds/bgmusic.wav的主java文件夹的子目录应该是正确的吗?

2 个答案:

答案 0 :(得分:1)

我认为您需要拥有File的完整路径才能识别它。

答案 1 :(得分:1)

new File(".")表示应用程序的基本文件夹(根文件夹)。 因此,请检查目录结构,该文件相对于项目基本文件夹的位置。否则分享你的项目结构。

如果要将文件放在java类路径(src文件夹)中,则可以从类路径加载声音文件(参考here