gpt4 book ai didi

java - getAudioInputStream 格式无效,尝试在 Java 中播放声音

转载 作者:行者123 更新时间:2023-12-01 18:14:01 25 4
gpt4 key购买 nike

我正在尝试在 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/

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