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 File

public 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

回到顶部