在我的项目中,我需要使用我播放的3.wav文件。这些文件与我使用它们路径的类位于同一目录中。问题是,只有当我指定文件的绝对路径时,我才能听到声音。当我使用相对路径时,它不起作用。我试了很多组合,但都不管用。我需要使用相对路径,因为这是一个插件项目。当我插入仅包含文件名的File引用时,IntelliJ可以看到该文件,但该引用只是临时的,显然不能解决我的问题。我的目录我当前的路径:
private String soundLevel1 = "/de/halirutan/keypromoterx/sound_effects/duck_quack_sound_effect.wav";
我的文件对象:
File file = new File(filePath);
我的音频开始:
AudioListener listener = new AudioListener();
try (AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file)) {
Clip clip = AudioSystem.getClip();
try (clip) {
clip.addLineListener(listener);
clip.open(audioInputStream);
clip.start();
listener.waitUntilDone();
}
尝试使用读取文件
URL url = getClass().getResource(soundLevel1);
AudioSystem.getAudioInputStream(url);
使用getClass().getResource()
,您正在读取项目中的文件
wav带有绝对路径,而相对则不播放。
问题是声音,不是阅读目录(这是一个问题标题(
您没有错误。
在clip.start();
之前生成System.out.println("play");
并查看是否执行