我正在尝试从我的 android 设备上的麦克风获取非常准确的定时录音。我的想法是
while (true) {
audioRecord.startRecording();
sleep(0,nanoSeconds);
audioRecord.flush();
audioRecord.read(buf, 0, numSamples);
}
但是没有flush()
办法AudioRecord
。所以也许我应该做
while (true) {
sleep(0,nanoSeconds);
audioRecord.startRecording();
audioRecord.read(buf, 0, numSamples);
audioRecord.stop();
}
当然,我无法找到关于 what startRecording()
, read()
, and stop()
do 的详细文档,以了解他们实际谈论缓冲区的位置。似乎没有任何方法可以调用来告诉我缓冲区中是否有样本。或者让我进行一个读取所有现有缓冲区的 read() 调用:我需要指定要读取的样本数,并且我的调用将阻塞,直到这些样本存在。
我很想有人告诉我这是在哪里更真实地记录下来。但几乎一样好,只要告诉我如果我真的想在一个非常准确确定的开始时间启动麦克风我应该怎么做。