Mercurial > jmeCapture
comparison src/com/aurellem/capture/WaveFileWriter.java @ 3:a92de00f0414
migrating files
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Tue, 25 Oct 2011 11:55:55 -0700 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
2:59509c585530 | 3:a92de00f0414 |
---|---|
1 package com.aurellem.capture; | |
2 | |
3 import java.io.ByteArrayInputStream; | |
4 import java.io.File; | |
5 import java.io.IOException; | |
6 import java.nio.ByteBuffer; | |
7 import java.util.Vector; | |
8 | |
9 import javax.sound.sampled.AudioFileFormat; | |
10 import javax.sound.sampled.AudioFormat; | |
11 import javax.sound.sampled.AudioInputStream; | |
12 import javax.sound.sampled.AudioSystem; | |
13 | |
14 public class WaveFileWriter implements SoundProcessor { | |
15 | |
16 public Vector<Byte> fullWaveData = new Vector<Byte>(); | |
17 public File targetFile; | |
18 | |
19 public WaveFileWriter(File targetFile){ | |
20 this.targetFile = targetFile; | |
21 } | |
22 | |
23 public void cleanup() { | |
24 byte[] data = new byte[this.fullWaveData.size()]; | |
25 | |
26 for (int i = 0; i < this.fullWaveData.size(); i++){ | |
27 data[i] = this.fullWaveData.get(i);} | |
28 | |
29 | |
30 ByteArrayInputStream input = new ByteArrayInputStream(data); | |
31 AudioFormat format = new AudioFormat(44100.0f, 32, 1, true, false); | |
32 AudioInputStream audioInput = new AudioInputStream(input, format, data.length / 4 ); | |
33 try {AudioSystem.write(audioInput, AudioFileFormat.Type.WAVE, targetFile);} | |
34 catch (IOException e) {e.printStackTrace();} | |
35 | |
36 } | |
37 | |
38 | |
39 public void process(ByteBuffer audioSamples, int numSamples) { | |
40 for (int i = 0; i<numSamples; i++){ | |
41 Byte b = audioSamples.get(i); | |
42 fullWaveData.add(b); | |
43 } | |
44 } | |
45 | |
46 } |