gpt4 book ai didi

java - 音频不播放 JAR 文件

转载 作者:行者123 更新时间:2023-11-29 05:12:25 25 4
gpt4 key购买 nike

我创建了一个在 netbeans IDE 中播放音频的项目。这些音频文件被放置在 Classes 文件夹中。虽然当我将它创建为 JAR 文件时,它无法找到音频文件。我什至将文件复制并粘贴到新的 dist 文件夹中。这是一段代码:

    private void playSound39() 
{
try
{
/**Sound player code from:
http://alvinalexander.com/java/java-audio-example-java-au-play-sound
*/
// the input stream portion of this recipe comes from a javaworld.com article.
InputStream inputStream = getClass().getResourceAsStream("./beep39.wav");
AudioStream audioStream = new AudioStream(inputStream);
AudioPlayer.player.start(audioStream);
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null,"Audio file not found!");
}
}

最佳答案

如果你想在你的程序中嵌入音频文件,它必须放在包中的 src 文件夹中。
例如,我将演示用于将图标设置为按钮的代码(也适用于音频文件):
在创建 JFrame 时我写道:

jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/GUI/Icon/PatientBig.png")));

我的项目中有一个名为 GUI 的包和一个名为 Icons 的子包,我的图标存在于其中,它们都在 src 文件夹中。
当你使用 getClass().getResource 函数时,我更喜欢使用绝对路径。
看到您的回复后,我注意到您继续使用 . 在类路径的开头,我复制了您发布的代码段并删除了 . 从路径的开头并将我的音频文件 bark.wav 放在默认包的 src 文件夹中,它工作了

public class test {

private void playSound39() {
try {
/**
* Sound player code from:
* http://alvinalexander.com/java/java-audio-example-java-au-play-sound
*/
// the input stream portion of this recipe comes from a javaworld.com article.
InputStream inputStream = getClass().getResourceAsStream("/bark.wav");
AudioStream audioStream = new AudioStream(inputStream);
AudioPlayer.player.start(audioStream);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Audio file not found!");
}
}
public static void main(String[] args){
new test().playSound39();
}
}

然后我将音频文件放入一个名为 test1 的包中,并在 getResourceAsStream 函数中修改了路径,它再次起作用了:

public class test {

private void playSound39() {
try {
/**
* Sound player code from:
* http://alvinalexander.com/java/java-audio-example-java-au-play-sound
*/
// the input stream portion of this recipe comes from a javaworld.com article.
InputStream inputStream = getClass().getResourceAsStream("/test1/bark.wav");
AudioStream audioStream = new AudioStream(inputStream);
AudioPlayer.player.start(audioStream);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Audio file not found!");
}
}
public static void main(String[] args){
new test().playSound39();
}
}

最重要的是从路径中删除.

关于java - 音频不播放 JAR 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27910015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com