Java jar 文件中的音频无法播放
Java audio doesn't play in jar file
我用 netbeans 创建了一个带有 3 个按钮的 JFrame,让我可以启动 wav 声音文件循环播放或停止播放。如果我从 netbeans 启动它,它工作得很好,但如果我启动 jar 文件,它就不起作用
怎么了?
这里是代码
public class NewJFrame extends javax.swing.JFrame {
/**
* Creates new form NewJFrame
*/
private AudioData audiodata;
private AudioDataStream audiostream;
private ContinuousAudioDataStream continuousaudiostream;
public NewJFrame() throws FileNotFoundException, IOException {
initComponents();
FileInputStream fis = new FileInputStream("boing.wav");
AudioStream audioStream = new AudioStream(fis);
audiodata = audioStream.getData();
audiostream = null;
continuousaudiostream = null;
}
public void play() {
audiostream = new AudioDataStream(audiodata);
AudioPlayer.player.start(audiostream);
}
public void loop() {
continuousaudiostream = new ContinuousAudioDataStream(audiodata);
AudioPlayer.player.start(continuousaudiostream);
}
public void stop() {
if (audiostream != null)
AudioPlayer.player.stop(audiostream);
if (continuousaudiostream != null)
AudioPlayer.player.stop(continuousaudiostream);
}
}
我的 3 个按钮调用了 play()、loop() 和 stop() 方法。我的 "boing.wav" 文件在我的项目文件夹中,我也尝试将其放入 /src/"boing.wav" 但无法启动 jar 文件。
我该怎么办?
这可能与您的 jdk 或声卡有关。代码看起来没问题,不过。尝试卸载并重新安装 jdk。此外,在不同的系统上测试应用程序,让我们知道响应是什么。
我用 netbeans 创建了一个带有 3 个按钮的 JFrame,让我可以启动 wav 声音文件循环播放或停止播放。如果我从 netbeans 启动它,它工作得很好,但如果我启动 jar 文件,它就不起作用 怎么了?
这里是代码
public class NewJFrame extends javax.swing.JFrame {
/**
* Creates new form NewJFrame
*/
private AudioData audiodata;
private AudioDataStream audiostream;
private ContinuousAudioDataStream continuousaudiostream;
public NewJFrame() throws FileNotFoundException, IOException {
initComponents();
FileInputStream fis = new FileInputStream("boing.wav");
AudioStream audioStream = new AudioStream(fis);
audiodata = audioStream.getData();
audiostream = null;
continuousaudiostream = null;
}
public void play() {
audiostream = new AudioDataStream(audiodata);
AudioPlayer.player.start(audiostream);
}
public void loop() {
continuousaudiostream = new ContinuousAudioDataStream(audiodata);
AudioPlayer.player.start(continuousaudiostream);
}
public void stop() {
if (audiostream != null)
AudioPlayer.player.stop(audiostream);
if (continuousaudiostream != null)
AudioPlayer.player.stop(continuousaudiostream);
}
}
我的 3 个按钮调用了 play()、loop() 和 stop() 方法。我的 "boing.wav" 文件在我的项目文件夹中,我也尝试将其放入 /src/"boing.wav" 但无法启动 jar 文件。 我该怎么办?
这可能与您的 jdk 或声卡有关。代码看起来没问题,不过。尝试卸载并重新安装 jdk。此外,在不同的系统上测试应用程序,让我们知道响应是什么。