2011-12-16 15 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

解決策は、マイクデバイスをより敏感に設定することです。 :)

関連する問題