Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.sound.sampled.*;
- import java.io.ByteArrayOutputStream;
- public class Main {
- //Variables
- int lineBufferSize = 16000;
- ByteArrayOutputStream out;
- byte[] finalData;
- byte[] tempdatabuffer;
- int numbytesread;
- final long RECORD_TIME = 1000;
- AudioFormat format;
- TargetDataLine line;
- DataLine.Info info;
- //Functions
- void setFormat()
- {
- float sampleRate = 32000;
- int sampleSizeInBits = 16;
- int channels = 1;
- boolean signed = true;
- boolean bigEndian = true;
- format = new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);
- }
- void start()
- {try {
- setFormat();
- tempdatabuffer = new byte[(lineBufferSize / 5)];
- info = new DataLine.Info(TargetDataLine.class, format);
- line = (TargetDataLine) AudioSystem.getLine(info);
- out = new ByteArrayOutputStream();
- line.open(format, 32000);
- line.start();
- System.out.println("Size of ByteArrayOutputStream at start: " + out.size());
- while(out.size() < 64000)
- {
- writeData();
- }
- stop();
- }
- catch(Exception e) {System.out.println("Exception");}}
- void writeData()
- {
- numbytesread = line.read(tempdatabuffer, 0, tempdatabuffer.length);
- out.write(tempdatabuffer, 0, numbytesread);
- }
- void stop()
- {
- line.stop();
- finalData = out.toByteArray();
- logMessages();
- line.close();
- }
- void logMessages()
- {
- System.out.println("Size of ByteArrayOutputStream at end: " + out.size());
- System.out.println("Size of finalData array: " + finalData.length);
- System.out.println("First value of finalData array: " + finalData[0]);
- System.out.println("First 100 datavalues of finalData array: ");
- for(int i = 0; i < 100; i++)
- {
- if(i%20 == 0)
- {
- System.out.println("");
- }
- System.out.print(finalData[i]);
- }
- }
- public static void main(String[] args) {
- Main mainclass = new Main();
- mainclass.start();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement