rlm@3: package com.aurellem.capture; rlm@3: rlm@3: import java.io.ByteArrayInputStream; rlm@3: import java.io.File; rlm@3: import java.io.IOException; rlm@3: import java.nio.ByteBuffer; rlm@3: import java.util.Vector; rlm@3: rlm@3: import javax.sound.sampled.AudioFileFormat; rlm@3: import javax.sound.sampled.AudioFormat; rlm@3: import javax.sound.sampled.AudioInputStream; rlm@3: import javax.sound.sampled.AudioSystem; rlm@3: rlm@3: public class WaveFileWriter implements SoundProcessor { rlm@3: rlm@3: public Vector fullWaveData = new Vector(); rlm@3: public File targetFile; rlm@3: rlm@3: public WaveFileWriter(File targetFile){ rlm@3: this.targetFile = targetFile; rlm@3: } rlm@3: rlm@3: public void cleanup() { rlm@3: byte[] data = new byte[this.fullWaveData.size()]; rlm@3: rlm@3: for (int i = 0; i < this.fullWaveData.size(); i++){ rlm@3: data[i] = this.fullWaveData.get(i);} rlm@3: rlm@3: rlm@3: ByteArrayInputStream input = new ByteArrayInputStream(data); rlm@3: AudioFormat format = new AudioFormat(44100.0f, 32, 1, true, false); rlm@3: AudioInputStream audioInput = new AudioInputStream(input, format, data.length / 4 ); rlm@3: try {AudioSystem.write(audioInput, AudioFileFormat.Type.WAVE, targetFile);} rlm@3: catch (IOException e) {e.printStackTrace();} rlm@3: rlm@3: } rlm@3: rlm@3: rlm@3: public void process(ByteBuffer audioSamples, int numSamples) { rlm@3: for (int i = 0; i