【发布时间】:2019-09-26 07:34:55
【问题描述】:
我想使用 alsa 从麦克风录制数据。 这个命令:
int buf[4096];
memset(buf, 0, sizeof(buf));
snd_pcm_readi(capture_handle, buf, avail);
将麦克风数据写入整数缓冲区 buf。 (我不确定 ..._readi 写入的数据是否是整数值,文档没有说明。)
但是,如果我遍历缓冲区,则数字毫无意义。 作为一个例子,我得到 buf[60] == -2,600,000,000 所以如果整数是 32 位,它小于最小整数。 (请注意,这不是我的代码,但我必须处理它)。 我想获取整个缓冲区数组的二进制值并理解这些值并查找它们以何种方式保存到缓冲区中,以便我可以使用这些数据重新创建声波。
【问题讨论】:
-
样本格式是您为设备配置的任何格式。