我正在尝试录制麦克风的声音并绘制实时图表。我能够记录并绘制图表。问题是使用下面的代码记录的值不准确,例如......下图是我在完全没有声音时得到的结果。我看过使用 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();
尝试使用更高的采样率。最大值为 48000,但标准值为 44100。
此外,麦克风也可能只是记录背景噪音。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)