我是 Java 編程的新手,當(dāng)我將我的 Java 項(xiàng)目導(dǎo)出到可運(yùn)行的 JAR 文件時(shí),我試圖讓音頻播放,但是當(dāng)它嘗試將音頻文件作為 JAR 訪問時(shí),我總是收到錯(cuò)誤消息。我已經(jīng)嘗試了兩種不同的方式來播放音頻(一種被評(píng)論,另一種沒有)。它們都在編譯器中工作。未注釋的在 JAR 文件中給我錯(cuò)誤,而注釋的甚至不會(huì)運(yùn)行 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 中卻沒有,我想我可能會(huì)錯(cuò)誤地訪問這些文件。編輯:已解決。我發(fā)現(xiàn)了有關(guān)使用 url 的信息,因?yàn)樗鼈兛梢蕴幚?jar 文件。
1 回答

ibeautiful
TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
嘗試:
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("./lose.wav"));
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
其中“./lose.wav”是音頻文件相對(duì)于 JAR 文件的位置(而不是相對(duì)于主類或 src 文件夾)。
添加回答
舉報(bào)
0/150
提交
取消