I get this exception and I don't know why, since I didn't close any streams. I wrapped the wav files in a BufferedInputStream so i can call input.reset() after playing the sounds, this way I can play them more than once using clip.start(). Where is the stream getting closed?
public static void init() {
String path = "res/sfx/";
InputStream audioSrc;
InputStream bufferedIn;
try {
audioSrc = Sound.class.getClassLoader().getResourceAsStream(path + "select.wav");
bufferedIn = new BufferedInputStream(audioSrc);
select = AudioSystem.getAudioInputStream(bufferedIn);//exception thrown here
audioSrc = Sound.class.getClassLoader().getResourceAsStream(path + "hiping.wav");
bufferedIn = new BufferedInputStream(audioSrc);
hiPing = AudioSystem.getAudioInputStream(bufferedIn);
audioSrc = Sound.class.getClassLoader().getResourceAsStream(path + "loping.wav");
bufferedIn = new BufferedInputStream(audioSrc);
loPing = AudioSystem.getAudioInputStream(bufferedIn);
audioSrc = Sound.class.getClassLoader().getResourceAsStream(path + "explode.wav");
bufferedIn = new BufferedInputStream(audioSrc);
explode = AudioSystem.getAudioInputStream(bufferedIn);
} catch (Exception e) {
e.printStackTrace();
}
}
The rest of the exception message is:
at java.io.BufferedInputStream.getInIfOpen(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at com.sun.media.sound.RIFFReader.read(Unknown Source)
at com.sun.media.sound.RIFFReader.<init>(Unknown Source)
at com.sun.media.sound.WaveFloatFileReader.internal_getAudioFileFormat(Unknown Source)
at com.sun.media.sound.WaveFloatFileReader.getAudioFileFormat(Unknown Source)
at com.sun.media.sound.WaveFloatFileReader.getAudioInputStream(Unknown Source)
at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)