我正在尝试录制来自MIC的声音并绘制实时图表。我能够录制并绘制图表。问题在于使用下面的代码记录的值不准确,例如...当没有任何声音时我得到下面的图片。我看到一些示例使用fft,但我不确定在我的情况下是否有任何帮助,因为我正在尝试绘制时间域图形,目前看不出将其转换为频率域的用途。其他人正在使用平均功率,这可能有帮助,但我不确定。
感谢任何帮助。
bufferSize = AudioRecord.getMinBufferSize(RECORDER_SAMPLERATE,RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING);
recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
RECORDER_SAMPLERATE, RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING, bufferSize);
short data [] = new short[bufferSize];
while (!Thread.interrupted()) {
recorder.startRecording();
recorder.read(data, 0, bufferSize);
recorder.stop();
for (short s : data)
{
try {
Thread.sleep((long) 300.00);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
postUI (Math.abs(s));
}
}
recorder.release();