AudioInputStream不起作用
我试图每次用户按下按钮时播放.wav声音,但是会引发异常:
线程“ Thread-0”中的异常java.lang.IllegalArgumentException:无效的格式 在org.classpath.icedtea.pulseaudio.PulseAudioDataLine.createStream(PulseAudioDataLine.java:142)
在org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:99)
在org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:283)
在org.classpath.icedtea.pulseaudio.PulseAudioClip.open(PulseAudioClip.java:402)
在org.classpath.icedtea.pulseaudio.PulseAudioClip.open(PulseAudioClip.java:453)
在Uber.play(Uber.java:534)
在Uber $ 5.run(Uber.java:340)
在java.lang.Thread.run(Thread.java:724)
这是代码:
//Play Audio Filepublic void play(String file) throws LineUnavailableException, UnsupportedAudioFileException, IOException
{
AudioInputStream inputStream = AudioSystem.getAudioInputStream(new File(file));
Clip clip = AudioSystem.getClip();
clip.open(inputStream);
clip.start();
}
回答:
我设法使其正常工作。这是我使用的代码。请记住,我只需要播放短的beep.wav声音。较长的声音文件似乎有些麻烦。让我知道它是否适合您,以及您是否可以使用此代码播放更长的声音。
public void play(String file) throws LineUnavailableException, UnsupportedAudioFileException, IOException {
try
{
AudioInputStream inputStream = AudioSystem.getAudioInputStream(this.getClass().getResource(file));
AudioFormat format = inputStream.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class, format);
Clip clip = (Clip)AudioSystem.getLine(info);
clip.open(inputStream);
clip.start();
}
catch (IOException | LineUnavailableException | UnsupportedAudioFileException e1)
{
e1.printStackTrace();
}
}
以上是 AudioInputStream不起作用 的全部内容, 来源链接: utcz.com/qa/406253.html