gpt4 book ai didi

java - 如何使用 AudioSystem 在 Java 中播放音乐(.mp3)?

转载 作者:行者123 更新时间:2023-12-02 03:44:51 29 4
gpt4 key购买 nike

我创建了下面给出的类来在游戏中实现声音。

执行时出现以下错误。

请有人告诉我为什么会出现此错误以及如何解决它!!

这是我的声音类文件:

package flappyLemon.model.game;

import javax.sound.sampled.*;

public class Sound {

private Clip clip;

public static Sound sound = new Sound("LemonTree.mp3");

public Sound(String fileName) {
try {
AudioInputStream ais = AudioSystem.getAudioInputStream(Sound.class.getResource(fileName));

clip = AudioSystem.getClip();
clip.open(ais);
} catch (Exception e) {
e.printStackTrace();
}
}

public void play() {
try {
if (clip != null) {
new Thread() {
public void run() {
synchronized (clip) {
clip.stop();
clip.setFramePosition(0);
clip.start();
}
}
}.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

现在我称之为:

Sound.sound.play();

然后我就变成了 NullPointerException:

java.lang.NullPointerException
at com.sun.media.sound.StandardMidiFileReader.getSequence(StandardMidiFileReader.java:207)
at javax.sound.midi.MidiSystem.getSequence(MidiSystem.java:841)
at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(SoftMidiAudioFileReader.java:178)
at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1147)
at flappyLemon.model.game.Sound.<init>(Sound.java:13)
at flappyLemon.model.game.Sound.<clinit>(Sound.java:9)
at flappyLemon.model.FlappyLemon.main(FlappyLemon.java:67)

最佳答案

将音频源文件复制到项目中

像这样:
example screen shot

Java api 不允许 .mp3 文件。您应该使用 .wav 文件。

private Clip clip;

public static Sound sound = new Sound("Yamaha-TG100-Whistle-C5.wav");

public Sound(String fileName) {
try {
AudioInputStream ais = AudioSystem.getAudioInputStream(Sound.class.getResource(fileName));

clip = AudioSystem.getClip();
clip.open(ais);
} catch (Exception e) {
e.printStackTrace();
}
}

了解更多信息click here

关于java - 如何使用 AudioSystem 在 Java 中播放音乐(.mp3)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36409687/

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