Java - 如何从 jar 中加载 .wav?
Java - How do I load a .wav from inside the jar?
我一直在尝试在我的 java 项目中播放一个 .wav 文件,我让它工作了......或者我是这么想的。当我将它导出到一个可执行的 jar 文件时,声音不会播放,除非它们与 jar 文件位于同一目录中。我希望它加载 jar 文件内部的声音。
这是我现在使用的代码:
void PlaySound(String filename) {
try (InputStream in = getClass().getResourceAsStream(filename)) {
try (AudioInputStream audioIn = AudioSystem.getAudioInputStream(in)) {
Clip clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
我需要将其更改为:
void PlaySound(String filename) {
try (InputStream in = getClass().getResourceAsStream(filename)) {
InputStream bufferedIn = new BufferedInputStream(in);
try (AudioInputStream audioIn = AudioSystem.getAudioInputStream(bufferedIn)) {
Clip clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
但我实际上是从这里得到这个解决方案的:
java.io.IOException: mark/reset not supported
我一直在尝试在我的 java 项目中播放一个 .wav 文件,我让它工作了......或者我是这么想的。当我将它导出到一个可执行的 jar 文件时,声音不会播放,除非它们与 jar 文件位于同一目录中。我希望它加载 jar 文件内部的声音。 这是我现在使用的代码:
void PlaySound(String filename) {
try (InputStream in = getClass().getResourceAsStream(filename)) {
try (AudioInputStream audioIn = AudioSystem.getAudioInputStream(in)) {
Clip clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
我需要将其更改为:
void PlaySound(String filename) {
try (InputStream in = getClass().getResourceAsStream(filename)) {
InputStream bufferedIn = new BufferedInputStream(in);
try (AudioInputStream audioIn = AudioSystem.getAudioInputStream(bufferedIn)) {
Clip clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
但我实际上是从这里得到这个解决方案的: java.io.IOException: mark/reset not supported