我正在尝试在 Java 中播放基本声音...
这是我的代码,基于在各个论坛上找到的代码:
Clip clip = null;
try {
clip = AudioSystem.getClip();
AudioInputStream inputStream = AudioSystem.getAudioInputStream(new File(url));
clip.open(inputStream);
} catch (LineUnavailableException | IOException | UnsupportedAudioFileException ex) {
Logger.getLogger(Pomodoro.class.getName()).log(Level.SEVERE, null, ex);
}
return clip;
我检查过:new File(url).exists();
返回 true,我检查文件类型确实是音频 WAV (audio/x-wav),我检查另一个文件是否仍然存在问题...我不明白我做错了什么。
错误:
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.IllegalArgumentException: Invalid format
at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.createStream(PulseAudioDataLine.java:142)
at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:99)
at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:283)
at org.classpath.icedtea.pulseaudio.PulseAudioClip.open(PulseAudioClip.java:402)
at org.classpath.icedtea.pulseaudio.PulseAudioClip.open(PulseAudioClip.java:453)
救命!
最佳答案
我终于找到了与我的问题重复的内容。抱歉打扰您了。
AudioInputStream is not working
我的代码变成:
Clip clip = null;
try {
AudioInputStream inputStream = AudioSystem.getAudioInputStream(new File(url));
DataLine.Info info = new DataLine.Info(Clip.class, inputStream.getFormat());
clip = (Clip)AudioSystem.getLine(info);
clip.open(inputStream);
} catch (LineUnavailableException | IOException | UnsupportedAudioFileException ex) {
Logger.getLogger(Pomodoro.class.getName()).log(Level.SEVERE, null, ex);
}
return clip;
尽管如此,我还是很惊讶我以前的代码不起作用。有时,我对 Java 感到非常绝望......
关于java - getAudioInputStream 格式无效,尝试在 Java 中播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30833342/