【发布时间】:2012-10-30 23:18:43
【问题描述】:
我正在尝试从我的 Android 设备上的麦克风获取非常准确的定时录音。我的想法是这样的
while (true) {
audioRecord.startRecording();
sleep(0,nanoSeconds);
audioRecord.flush();
audioRecord.read(buf, 0, numSamples);
}
但是AudioRecord 没有flush() 方法。所以也许我应该这样做
while (true) {
sleep(0,nanoSeconds);
audioRecord.startRecording();
audioRecord.read(buf, 0, numSamples);
audioRecord.stop();
}
当然,我找不到关于 startRecording()、read() 和 stop() 所做的足够详细的文档来说明他们实际谈论缓冲区的位置。似乎没有任何方法可以调用来告诉我缓冲区中是否有样本。或者让我进行一个读取所有现有缓冲区的 read() 调用:我需要指定要读取的样本数量,并且我的调用将阻塞,直到这些样本存在。
我希望有人能告诉我在哪里更真实地记录了这一点。但几乎一样好,只要告诉我如果我真的想在一个非常准确确定的开始时间启动麦克风我应该怎么做。
【问题讨论】: