Java 在IDEA中播放音频是可行的,但在编译到jar中时会出错
当在IntelliJ IDEA中运行它时,效果很好,但是当我将它构建为一个工件时,音频会播放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
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")));
}