Advertisement
I_Cheer3d

Untitled

Jul 14th, 2019
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.93 KB | None | 0 0
  1. import javax.sound.sampled.*;
  2. import java.io.ByteArrayOutputStream;
  3.  
  4. public class Main {
  5. //Variables
  6.    
  7.     int lineBufferSize = 16000;
  8.     ByteArrayOutputStream out;
  9.     byte[] finalData;
  10.     byte[] tempdatabuffer;
  11.     int numbytesread;
  12.  
  13.     final long RECORD_TIME = 1000;
  14.    
  15.     AudioFormat format;
  16.     TargetDataLine line;
  17.     DataLine.Info info;
  18.  
  19.    
  20. //Functions
  21.     void setFormat()
  22.     {
  23.         float sampleRate = 32000;
  24.         int sampleSizeInBits = 16;
  25.         int channels = 1;
  26.         boolean signed = true;
  27.         boolean bigEndian = true;
  28.         format = new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);
  29.     }
  30.    
  31.     void start()
  32.     {try {
  33.         setFormat();
  34.         tempdatabuffer = new byte[(lineBufferSize / 5)];
  35.         info = new DataLine.Info(TargetDataLine.class, format);
  36.         line = (TargetDataLine) AudioSystem.getLine(info);
  37.         out = new ByteArrayOutputStream();
  38.        
  39.         line.open(format, 32000);
  40.         line.start();
  41.        
  42.         System.out.println("Size of ByteArrayOutputStream at start: " + out.size());
  43.        
  44.         while(out.size() < 64000)
  45.         {
  46.             writeData();
  47.         }
  48.         stop();
  49.     }
  50.     catch(Exception e) {System.out.println("Exception");}}
  51.  
  52.        
  53.     void writeData()
  54.     {
  55.         numbytesread = line.read(tempdatabuffer, 0, tempdatabuffer.length);
  56.         out.write(tempdatabuffer, 0, numbytesread);
  57.     }
  58.        
  59.        
  60.     void stop()
  61.     {
  62.         line.stop();
  63.        
  64.         finalData = out.toByteArray();
  65.        
  66.         logMessages();
  67.        
  68.         line.close();
  69.     }
  70.    
  71.     void logMessages()
  72.     {
  73.         System.out.println("Size of ByteArrayOutputStream at end: " + out.size());
  74.        
  75.         System.out.println("Size of finalData array: " + finalData.length);
  76.        
  77.         System.out.println("First value of finalData array: " + finalData[0]);
  78.  
  79.         System.out.println("First 100 datavalues of finalData array: ");
  80.         for(int i = 0; i < 100; i++)
  81.         {
  82.             if(i%20 == 0)
  83.             {
  84.                 System.out.println("");
  85.             }
  86.             System.out.print(finalData[i]);
  87.         }
  88.     }
  89.  
  90.  
  91.     public static void main(String[] args) {
  92.        
  93.         Main mainclass = new Main();
  94.         mainclass.start();
  95.        
  96.     }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement