diff --git a/gradle.properties b/gradle.properties index 37575ea..0cd2948 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -version=4.1 \ No newline at end of file +version=4.2 \ No newline at end of file diff --git a/src/main/java/fr/Skydust/JdrBot/stock/RecordState.java b/src/main/java/fr/Skydust/JdrBot/stock/RecordState.java index 46f2b7c..e48eb80 100755 --- a/src/main/java/fr/Skydust/JdrBot/stock/RecordState.java +++ b/src/main/java/fr/Skydust/JdrBot/stock/RecordState.java @@ -152,10 +152,20 @@ public class RecordState { } public void rawToWave(ByteArrayOutputStream input, File wavFile) throws IOException { + // Transform output to input stream with pipes + PipedInputStream pis = new PipedInputStream(); + final PipedOutputStream out = new PipedOutputStream(pis); + new Thread(() -> { + try { + input.writeTo(out); + } catch (IOException e) { + throw new RuntimeException(e); + } + }).start(); + AudioFormat format = getAudioFormat(); - byte[] audioData = input.toByteArray(); - ByteArrayInputStream bais = new ByteArrayInputStream(audioData); - AudioInputStream audioInputStream = new AudioInputStream(bais, format, audioData.length / format.getFrameSize()); + + AudioInputStream audioInputStream = new AudioInputStream(pis, format, input.size() / format.getFrameSize()); AudioSystem.write(audioInputStream, AudioFileFormat.Type.WAVE, wavFile);