lm68140318 发表于 2023-7-27 05:48:14

WAVEHDR结构

typedef struct {
LPSTR lpData; //波形缓冲数据(传入首地址)
DWORD dwBufferLength; //缓冲区长度
DWORD dwBytesRecorded; //指明录音时缓冲区容量
DWORD dwUser; //用户数据
DWORD dwFlags; //提供缓冲区标示
DWORD dwLoops; //循环次数
struct wavehdr_tag * lpNext; //预留,NULL
DWORD reserved; //预留,0
} WAVEHDR;


我的问题:dwBytesRecorded这个值为0和不为0   有何区别 ??

isdkz 发表于 2023-7-27 05:48:22

dwBytesRecorded是WAVEHDR结构中的一个成员,用于指示录音时缓冲区的容量。它的值可以为0或者非0,区别如下:

1. 当dwBytesRecorded的值为0时,表示录音时缓冲区没有被填充任何数据。这可能是因为录音设备没有录制到任何声音或者录音操作还没有开始。在这种情况下,可以认为缓冲区是空的。

2. 当dwBytesRecorded的值不为0时,表示录音时缓冲区中有数据被录制。这意味着录音设备已经录制了一些声音,并将其存储在缓冲区中。可以通过dwBytesRecorded的值来了解录制了多少字节的数据。

总之,dwBytesRecorded的值为0表示缓冲区为空,而非0表示缓冲区中有录制的数据。这个值的变化可以帮助我们判断录音操作是否已经开始以及缓冲区中是否有录制的数据。

Mike_python小 发表于 2023-7-27 05:48:26

dwBytesRecorded 是 WAVEHDR 结构中的一个成员,用于指示录音时缓冲区的容量。它表示实际录制的字节数。

- 如果 dwBytesRecorded 的值为 0,表示当前缓冲区中没有录制到任何数据。这可能是由于录音设备未能成功录制音频或者录制的音频数据长度为 0。
- 如果 dwBytesRecorded 的值不为 0,表示当前缓冲区中录制了一定数量的音频数据。它会告知应用程序实际录制了多少字节的音频数据,应用程序可以根据这个值来处理录制后的数据。

在使用 WAVEHDR 结构进行音频录制时,通过检查 dwBytesRecorded 的值,可以判断是否成功录制到音频数据,并根据实际录制的字节数来进行后续的处理和分析。

需要注意的是,dwBytesRecorded 的值需要在调用录音函数之后才会被更新,因此在处理录音数据时,应在录音函数返回后再查看该值。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

lm68140318 发表于 2023-7-27 05:58:21

这么早就在线   你们不睡觉吗 ?

sfqxx 发表于 2023-7-27 09:50:38

lm68140318 发表于 2023-7-27 05:58
这么早就在线   你们不睡觉吗 ?

脚本啊,兄弟。{:10_316:}
页: [1]
查看完整版本: WAVEHDR结构