好的,所以我有一个简单的程序来加载音频文件并播放它们。
我有这个用于加载我的音频文件
Clip c1 = null;
try {
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(songPaths[k + 1]).getAbsoluteFile());
c1 = AudioSystem.getClip();
c1.open(audioInputStream);
} catch (Exception ex) {
System.out.println("Error with playing sound.");
ex.printStackTrace();
}
它在我的intelliJ中运行良好,当我想要构建工件并尝试运行使其无法加载资源的jar时。我的songPaths数组看起来像这样:
private final String[] songPaths = {"res/fcpOriginal.wav", "res/fcpRemix.wav",
"res/ibizaOriginal.wav", "res/ibizaRemix.wav",
"res/pohOriginal.wav", "res/pohRemix.wav",
"res/sugarOriginal.wav", "res/sugarRemix.wav",
"res/wavesOriginal.wav", "res/wavesRemix.wav"};
我不太清楚发生了什么事。任何帮助将不胜感激。
答案 0 :(得分:0)
因此,如果我正确理解您的目录层次结构,您将拥有以下内容:
的src
出/伪影/ nameOfProject_jar。
RES
您应该将res文件夹的副本放入nameOfProject_jar文件夹中。因为您的应用程序的工作目录现在是您的nameOfProject_jar文件夹,所以当您使用相关路径时,它将在nameOfProject_jar目录中查找res文件夹。 :)
答案 1 :(得分:0)
我明白了。 对于任何未来的研究人员!
我改变了
Auth::user()->category->name
到
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(songPaths[k + 1]).getAbsoluteFile());