我使用 VFW 做了一些快速的解决方案。在准备接收音频数据的阶段,我要求 VFW 给我附加的 WEBcam 的默认波形数据格式。它返回给我 WAVEFORMATEX 结构,请看图片。
如您所见,它是 1 个字节的样本和 1 个通道。每秒 11025 个字节。但是callBack接收了另外一个字节,请看图片
问题是:这些与价值观之间的相关性和依赖性是什么?如果有 2 个通道,在这种情况下如何分离数据?
dwBufferLength
是缓冲区的大小,而不是捕获的字节数。您对另一个成员感兴趣:dwBytesRecorded
。
如果是立体声WAVEFORMATEX
会有 2 in nChannels
,然后nBlockAlign
,nAvgBytesPerSec
会分别调整。缓冲区中的字节将具有以下包装:
0000: [sample 0, channel 0]
0001: [sample 0, channel 1]
0002: [sample 1, channel 0]
0003: [sample 1, channel 1]
...