2014-02-05 67 views
0

Hääwuo, 我在尝试实现Pong。Java声音| UnsupportedAudioFileException

现在我想播放声音,但它会引发异常(UnsupportedAudioFileException)。 我错了什么?

AudioInputStream ainBalk; 
Clip clip; 


//Constructor beginning 
public Playboard() { 
    try { 
     Clip clip = AudioSystem.getClip(); 
     ainBalk = AudioSystem.getAudioInputStream(Playboard.class.getClassLoader().getResourceAsStream("Balk.wav")); // Exception!      
} catch (Exception e1) { 
       e1.printStackTrace(); 
      } 
    ... 

感谢您的帮助

+0

异常中的消息是什么? –

+1

@ greg-449整个堆栈跟踪可能在这里很方便.. –

+0

通常应该支持WAV ...但是WAV的格式是什么? 位/通道,通道,采样率,... 另外,你仔细检查过,你对getResourceAsStream()的调用实际上是否返回一个有效的流? – hendrik

回答

1

从Java文档:

的UnsupportedAudioFileException是指示操作失败,因为文件没有包含可识别文件类型的有效数据和异常格式。

UnsupportedAudioFileException.html

不同的音频软件有时确实产生非常不同的,有时不兼容的.wav文件。所以很有可能,Java AudioSystem与您要打开的特定wav文件不兼容。您可以尝试将文件转换为aiff,或者您可以在不同的音频编辑器/转换器中打开该文件并将其另存为新文件。

+1

一个好的转换器将是Audacity(免费)。最常见的支持文件格式之一:16位编码,44100 fps,立体声,小端。 –