2011-12-16 89 views
1

我试图获得音频输入双/ intger振幅值:为什么字节数组只包含音频输入捕捉 - 字节数组

AudioFormat format = new AudioFormat(8000.0f, 8, 1, true, true); 

    TargetDataLine line = null; 
    DataLine.Info info = new DataLine.Info(TargetDataLine.class, 
      format); 
    if (!AudioSystem.isLineSupported(info)) { 

    } 

    try { 
     line = (TargetDataLine) AudioSystem.getLine(info); 
     line.open(format); 
    } catch (LineUnavailableException ex) { 
     // Handle the error ... 
    } 

    ByteArrayOutputStream out = new ByteArrayOutputStream(); 
    int numBytesRead; 
    byte[] data = new byte[line.getBufferSize()/5]; 


    line.start(); 

    while (true) { 

     numBytesRead = line.read(data, 0, data.length); 
     // Save this chunk of data. 
     out.write(data, 0, numBytesRead); 
     for(int i=0; i<numBytesRead; i+=1) { 
      System.out.println(Byte.toString(data[i])); 

     } 
     System.out.println(); 
    } 

我无法理解值为0,-1或1 。如何获得振幅的双倍或整数值。

回答

-1

解决方案是设置麦克风设备更敏感。 :)