如何在导出的 jar 文件中播放 .wav 文件?

问题描述

我想创建一个游戏,它应该包含在后台播放的音乐。音乐文件是源文件夹中的 .wav 文件

如何使用main方法中的代码播放可执行jar文件中的音乐:

public class PlayMusic {
    
    public static void main(String[] args) throws LineUnavailableException,IOException,UnsupportedAudioFileException,InterruptedException {

            File file = new File("MusicPlayer/SnakeOST.wav"); 

            AudioInputStream audioStream = AudioSystem.getAudioInputStream(file); 

            Clip clip = AudioSystem.getClip(); 
            clip.open(audioStream); 
                
            clip.start();
            clip.loop(Clip.LOOP_CONTINUOUSLY) ; 
    }
}

代码在 Eclipse 中确实有效,但在导出代码后,.jar 文件中缺少音乐。

解决方法

您的问题是,您的路径正在 src 文件夹中寻找名为 MusicPlayer 的文件夹。 您想使用绝对路径,例如:

array = ['f','g','d','e','c','b','h','a']
first = sorted(array[::2]) # ['c','f','h']
second = sorted(array[1::2]) # ['a','g']

这样,路径将从 jar 的根目录开始,然后查找名为“MusicPlayer”的文件夹

编辑: 您需要对您的类的引用,例如:

/MusicPlayer/SnakeOST.wav

App.class.getResourceAsStream("/model/test.png")