查找播放声音的文件
问题描述:
我试图制作一个应用程序,当我点击一个JButton时,播放一首歌曲。我已经想出了如何指定JButton。但是,我似乎无法找到播放声音的方法。我不打算使用sun.audio,因此我看到的许多线程都无法工作。我发现许多低质量的答案。最终,我解决了这个代码。查找播放声音的文件
public static synchronized void playSound(final String url) {
new Thread(new Runnable() {
public void run() {
try {
Clip clip = AudioSystem.getClip();
AudioInputStream inputStream = AudioSystem.getAudioInputStream(
Main.class.getResourceAsStream("/path/to/sounds/" + url));
clip.open(inputStream);
clip.start();
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
}).start();
}
在我的src文件夹中,我有一个名为“Songs”的文件夹。我改变的文件路径是: /歌/
然后,我打过电话使用wav文件的功能:
playSound("song.wav");
然后我得到一个空的错误。我相信这是因为它无法识别文件路径。我的问题的答案很可能非常明显,但不知何故,我无法找到它。
答
将song.wav放在Main类的相同文件夹中,然后getResourceAsStream会找到它。
如果您使用的是eclipse,它可以自动将.wav文件复制到输出文件夹。
您可能想要在某个不同的Java包上创建一个类,以便您的入口点不受资产污染。