繁体   English   中英

导出到jar后音频资源将无法播放

[英]Audio resources wont play after export to jar

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

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

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

我不太确定发生了什么。 任何帮助将不胜感激。

因此,如果我正确地理解了您的目录层次结构,那么您将具有以下优势:

src

out / artifacts / nameOfProject_jar。

资源

您应该将res文件夹的副本放入nameOfProject_jar文件夹中。 因为您的应用程序的工作目录现在是您的nameOfProject_jar文件夹,所以当您使用类似的相对路径时,它将在nameOfProject_jar目录中查找res文件夹。 :)

我想到了。 对于任何未来的研究人员!

我变了

AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(songPaths[k + 1]).getAbsoluteFile());

AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(getClass.getResource(songPaths[k + 1]));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM