2013-05-17 51 views
0

我試圖在單擊按鈕時播放聲音文件(.wav)。電話都是正確的。當我點擊按鈕時,打印出一個IOException。這是該方法的代碼,啓動音樂:無法從輸入流創建音頻流

public void playSound(String path) { 

//M:\Programming\workspace\testing\music.wav <--- String path 
    InputStream in; 
    AudioStream as = null; 

    try { 
     in = new FileInputStream(path); 
     as = new AudioStream(in); 
    } catch (FileNotFoundException e) { 
     System.out.println("Audio file not found."); 
     e.printStackTrace(); 
    } catch (IOException e) { 
     System.out.println("Incorrect input."); 
     e.printStackTrace(); 
    } 
    AudioPlayer.player.start(as); 
} 

這是錯誤:

java.io.IOException: could not create audio stream from input stream 
at sun.audio.AudioStream.<init>(Unknown Source) 
at GameWindow.playSound(GameWindow.java:484) 
at GameWindow$13.mouseReleased(GameWindow.java:385) 
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) 
at java.awt.Component.processMouseEvent(Unknown Source) 
at javax.swing.JComponent.processMouseEvent(Unknown Source) 
at java.awt.Component.processEvent(Unknown Source) 
at java.awt.Container.processEvent(Unknown Source) 
at java.awt.Component.dispatchEventImpl(Unknown Source) 
at java.awt.Container.dispatchEventImpl(Unknown Source) 
at java.awt.Component.dispatchEvent(Unknown Source) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
at java.awt.Container.dispatchEventImpl(Unknown Source) 
at java.awt.Window.dispatchEventImpl(Unknown Source) 
at java.awt.Component.dispatchEvent(Unknown Source) 
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
at java.awt.EventQueue.access$200(Unknown Source) 
at java.awt.EventQueue$3.run(Unknown Source) 
at java.awt.EventQueue$3.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue$4.run(Unknown Source) 
at java.awt.EventQueue$4.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue.dispatchEvent(Unknown Source) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.run(Unknown Source) 

我已經試過許多方法來打,我已經在谷歌找到的音頻文件,但所有返回這個相同的錯誤。我需要做些什麼來解決這個問題?如果有更好的方式來處理音頻文件,你能提供任何資源來看嗎?

回答

1

嘗試實例化一個WaveFileReader(包com.sun.media.sound) - 這應該用於讀取您的文件。如果你得到一個UnsupportedAudioFileException那麼你可能有一個損壞的wav文件 - 嘗試一個不同的。

+0

我想這是一個損壞的文件。我正在使用的那個我重命名爲.wav - 刪除並下載了一個新的。現在完美運作。 – Aaron