Java 在IDEA中播放音频是可行的,但在编译到jar中时会出错

Java 在IDEA中播放音频是可行的,但在编译到jar中时会出错,java,audio,Java,Audio,当在IntelliJ IDEA中运行它时,效果很好,但是当我将它构建为一个工件时,音频会播放 play.close(); 这是stacktrace java.lang.IllegalStateException:行已关闭 位于org.classpath.icedtea.pulseaudio.PulseAudioClip.close(PulseAudioClip.java:241) 在me.com.test.main.playAudio(main.java:37) 在me.com.test.ma

当在IntelliJ IDEA中运行它时,效果很好,但是当我将它构建为一个工件时,音频会播放

play.close();
这是stacktrace

java.lang.IllegalStateException:行已关闭 位于org.classpath.icedtea.pulseaudio.PulseAudioClip.close(PulseAudioClip.java:241) 在me.com.test.main.playAudio(main.java:37) 在me.com.test.main.main(main.java:50)


您是否尝试将tadah.wav放入项目目录,然后将其打包到jar中,只需调用playAudio(newFile(“tadah.wav”)@user2277872,不幸的是,同样的错误。
public static Boolean playAudio(File localSoundURL) {
    Clip play = null;
    try {
        AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(localSoundURL);
        play = AudioSystem.getClip();
        play.open(audioInputStream);

        FloatControl volume = (FloatControl) play.getControl(FloatControl.Type.MASTER_GAIN);
        volume.setValue(6.0f);

        play.start();
        play.drain();
    } catch(UnsupportedAudioFileException |IOException | LineUnavailableException ex) {
        ex.printStackTrace();
        return false;
    } finally {
        try {
            assert play != null;
            play.close();
        } catch (Exception exp) {
            exp.printStackTrace();
        } finally {
            return true;
        }
    }
}

public static void main(String[] args) throws InterruptedException {
    System.out.println(playAudio(new File(FileSystemView.getFileSystemView().getHomeDirectory()+"/Music/tahdah.wav")));
}