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