[英]How to play Music (.mp3) in Java with AudioSystem?
我按照以下给出的类在游戏中实现声音。
执行时,出现以下错误。
请有人可以告诉我为什么会出现此错误以及如何解决!!
这是我的声音类文件:
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)
将音频源文件复制到项目中
像这样:
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();
}
}
欲了解更多信息, 请点击这里
Java不支持mp3文件,mp3是音频容器,大多数已编码为使用。
来自developer.com的报价:
Java Sound支持多种文件类型,包括AIFF,AU和WAV。 它可以以8 KHz至48 KHZ的采样率呈现8位和16位音频数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.