Java - 如何从jar中加载.wav?

时间:2015-07-09 01:31:03

标签: java audio javasound

我一直在尝试在我的java项目中播放.wav文件,我让它工作......或者我认为。当我将它导出到可执行jar文件时,除非它们与jar文件位于同一目录中,否则声音将无法播放。我希望它加载jar文件内部的声音。 这是我现在正在使用的代码:

    void PlaySound(String filename) {
        try (InputStream in = getClass().getResourceAsStream(filename)) {
            try (AudioInputStream audioIn = AudioSystem.getAudioInputStream(in)) {
                Clip clip = AudioSystem.getClip();
                clip.open(audioIn);
                clip.start();
            }

        } catch (Exception e) {
           e.printStackTrace();
       }
    }

1 个答案:

答案 0 :(得分:3)

我需要将其更改为:

void PlaySound(String filename) {
        try (InputStream in = getClass().getResourceAsStream(filename)) {
            InputStream bufferedIn = new BufferedInputStream(in);
            try (AudioInputStream audioIn = AudioSystem.getAudioInputStream(bufferedIn)) {
                Clip clip = AudioSystem.getClip();
                clip.open(audioIn);
                clip.start();
            }
        } catch (Exception e) {
           e.printStackTrace();
       }
    }

但我实际上从这里得到了这个解决方案: java.io.IOException: mark/reset not supported