导出到jar后音频资源不会播放

时间:2016-05-10 00:24:42

标签: java audio intellij-idea jar resources

好的,所以我有一个简单的程序来加载音频文件并播放它们。

我有这个用于加载我的音频文件

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"};

我不太清楚发生了什么事。任何帮助将不胜感激。

2 个答案:

答案 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());