Java字节数组中的音频输入捕获

Java字节数组中的音频输入捕获,java,audio,input,bytearrayoutputstream,Java,Audio,Input,Bytearrayoutputstream,我正在尝试获取音频输入的双/整数振幅值: 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))

我正在尝试获取音频输入的双/整数振幅值:

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();
    }
AudioFormat格式=新的AudioFormat(8000.0f,8,1,true,true);
TargetDataLine line=null;
DataLine.Info=newdataline.Info(TargetDataLine.class,
格式);
如果(!AudioSystem.isLineSupported(信息)){
}
试一试{
line=(TargetDataLine)AudioSystem.getLine(info);
行。打开(格式);
}捕获(LineUnavailableException ex){
//处理错误。。。
}
ByteArrayOutputStream out=新建ByteArrayOutputStream();
int numBytesRead;
字节[]数据=新字节[line.getBufferSize()/5];
line.start();
while(true){
numBytesRead=line.read(数据,0,数据.长度);
//保存这段数据。
out.write(数据,0,numbytes读取);

对于(int i=0;i解决方案是将麦克风设备设置得更灵敏。:)