为了账号安全,请及时绑定邮箱和手机立即绑定

如何让JAR文件中的音频播放?

如何让JAR文件中的音频播放?

一只名叫tom的猫 2023-05-17 17:31:11
我是 Java 编程的新手,当我将我的 Java 项目导出到可运行的 JAR 文件时,我试图让音频播放,但是当它尝试将音频文件作为 JAR 访问时,我总是收到错误消息。我已经尝试了两种不同的方式来播放音频(一种被评论,另一种没有)。它们都在编译器中工作。未注释的在 JAR 文件中给我错误,而注释的甚至不会运行 JAR 文件!InputStream in;AudioStream as;public void PlayMusic(boolean a){    try     {        if (a == false)        {            AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(this.getClass().getResourceAsStream("./lose.wav"));            Clip clip = AudioSystem.getClip();            clip.open(audioInputStream);            clip.start();            /*in = getClass().getResourceAsStream("/connectfour/lose.wav");            as = new AudioStream (in);            AudioPlayer.player.start(as);*/        }        else        {            AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(this.getClass().getResourceAsStream("./win.wav"));            Clip clip = AudioSystem.getClip();            clip.open(audioInputStream);            clip.start();            /*in = getClass().getResourceAsStream("/connectfour/win.wav");            as = new AudioStream (in);            AudioPlayer.player.start(as);*/        }    }    catch (Exception e)    {        JOptionPane.showMessageDialog(null, "Error");    }}考虑到文件在编译器中工作得很好,但在 JAR 中却没有,我想我可能会错误地访问这些文件。编辑:已解决。我发现了有关使用 url 的信息,因为它们可以处理 jar 文件。
查看完整描述

1 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

尝试:


 AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("./lose.wav"));

 Clip clip = AudioSystem.getClip();

 clip.open(audioInputStream);

 clip.start();

其中“./lose.wav”是音频文件相对于 JAR 文件的位置(而不是相对于主类或 src 文件夹)。


查看完整回答
反对 回复 2023-05-17
  • 1 回答
  • 0 关注
  • 132 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信