我在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文件夹的子目录应该是正确的吗?
答案 0 :(得分:1)
我认为您需要拥有File的完整路径才能识别它。
答案 1 :(得分:1)
new File(".")
表示应用程序的基本文件夹(根文件夹)。
因此,请检查目录结构,该文件相对于项目基本文件夹的位置。否则分享你的项目结构。
如果要将文件放在java类路径(src文件夹)中,则可以从类路径加载声音文件(参考here)