2014-02-05 33 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,立體聲,小端。 –