From c0195212359144b68792d8b8bb83b6cd78acd8b5 Mon Sep 17 00:00:00 2001 From: johni0702 Date: Thu, 20 Aug 2015 15:25:24 +0200 Subject: [PATCH] Buffer sounds in memory to support mark/reset --- .../java/eu/crushedpixel/replaymod/sound/SoundHandler.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/eu/crushedpixel/replaymod/sound/SoundHandler.java b/src/main/java/eu/crushedpixel/replaymod/sound/SoundHandler.java index 53dff07b..363c2506 100644 --- a/src/main/java/eu/crushedpixel/replaymod/sound/SoundHandler.java +++ b/src/main/java/eu/crushedpixel/replaymod/sound/SoundHandler.java @@ -2,10 +2,12 @@ package eu.crushedpixel.replaymod.sound; import net.minecraft.client.Minecraft; import net.minecraft.util.ResourceLocation; +import org.apache.commons.io.IOUtils; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; +import java.io.ByteArrayInputStream; import java.io.InputStream; public class SoundHandler { @@ -23,7 +25,9 @@ public class SoundHandler { public void playSound(ResourceLocation loc) { try { InputStream is = Minecraft.getMinecraft().getResourceManager().getResource(loc).getInputStream(); - AudioInputStream ais = AudioSystem.getAudioInputStream(is); + byte[] bytes = IOUtils.toByteArray(is); + is.close(); + AudioInputStream ais = AudioSystem.getAudioInputStream(new ByteArrayInputStream(bytes)); Clip clip = AudioSystem.getClip(); clip.open(ais);