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