加載我的計劃的一部分,需要聲音的加載和提示時播放他們回來。 目前我支持加載.wav文件,我已經「嵌入」作爲我的項目資源。要做到這一點我用一行這樣的代碼:重置的Java的AudioInputStream從文件
sounds[i+1] = AudioSystem.getAudioInputStream(MyProject.class.getResource("filename.wav"));
我的下一個目標是讓用戶上傳自己的.wav文件進行播放。爲此,我使用如下代碼行:
sounds[i+1] = AudioSystem.getAudioInputStream(new File("filename.wav"));
現在出現這個問題。當然,我希望能夠不止一次地播放這些聲音。在我最初的方法中,我使用:
sound.markSupported();
sound.mark(Integer.MAX_VALUE);
/* do stuff with it */
sound.reset();
而且這個工作非常好。然而,它不起作用(調用reset()時崩潰)我創建的音頻流「定期」加載文件(上面的第二種方法)。
我收到的錯誤是
java.io.IOException: mark/reset not supported
at java.io.InputStream.reset(InputStream.java:348)
at javax.sound.sampled.AudioInputStream.reset(AudioInputStream.java:427)....
這是爲什麼? 我應該如何解決這個問題?
你必須檢查是否'sound.markSupported()''返回如果TRUE'沒有你不能使用'標誌()' – mariusz2108