rlm@524: package com.aurellem.gb; rlm@524: rlm@524: import java.io.File; rlm@524: import java.io.FileNotFoundException; rlm@524: import java.io.FileOutputStream; rlm@524: import java.io.IOException; rlm@524: import java.nio.ByteBuffer; rlm@524: rlm@524: import javax.sound.sampled.AudioFormat; rlm@524: import javax.sound.sampled.AudioSystem; rlm@524: rlm@524: import org.tritonus.sampled.file.WaveAudioOutputStream; rlm@524: import org.tritonus.share.sampled.file.TDataOutputStream; rlm@524: import org.tritonus.share.sampled.file.TNonSeekableDataOutputStream; rlm@524: rlm@524: rlm@524: public class WaveWriter { rlm@524: public File targetFile; rlm@524: private WaveAudioOutputStream wao; rlm@524: private TDataOutputStream tos; rlm@524: private boolean initialized = false; rlm@524: rlm@524: public WaveWriter(File targetFile) rlm@524: throws FileNotFoundException{ rlm@524: tos = new TNonSeekableDataOutputStream rlm@524: (new FileOutputStream(targetFile)); rlm@524: } rlm@524: rlm@524: public void init(AudioFormat format){ rlm@524: wao = new WaveAudioOutputStream rlm@524: (format,AudioSystem.NOT_SPECIFIED, tos); rlm@524: } rlm@524: rlm@524: public void process(byte[] audioSamples, rlm@524: AudioFormat format) { rlm@524: if (!initialized){ rlm@524: init(format); rlm@524: initialized = true; rlm@524: } rlm@524: try {wao.write(audioSamples, 0, audioSamples.length);} rlm@524: catch (IOException e) {e.printStackTrace();} rlm@524: } rlm@524: rlm@524: public void cleanup() { rlm@524: try {wao.close();} rlm@524: catch (IOException e) {e.printStackTrace();} rlm@524: } rlm@524: }