Windows录音API学习笔记(转)
源:Windows录音API学习笔记
Windows录音API学习笔记
结构体和函数信息
结构体
WAVEINCAPS
该结构描述了一个波形音频输入设备的能力。
typedef struct {
WORD wMid; 用于波形音频输入设备的设备驱动程序制造商标识符。
WORD wPid; 声音输入设备的产品识别码。
MMVERSION vDriverVersion; 用于波形音频输入设备的设备驱动程序的版本号。高位字节是主版本号,低字节是次版本号。
CHAR szPname[MAXPNAMELEN]; 设备名称
DWORD dwFormats; 所支持的标准格式。可以是以下组合:
WORD wChannels; 数值指定设备是否支持单(1)或立体声(2)的输入
WORD wReserved1; 填充
} WAVEINCAPS;
HWAVEIN 目前推测是打开声音设备后获取的句柄(现在看就是句柄)
WAVEHDR
此结构定义用于标识一个波形音频缓冲器中的报头。
typedef struct { LPSTR lpData; 指向波形缓冲区。 DWORD dwBufferLength; 缓冲区长度 DWORD dwBytesRecorded; 被用于输入时缓冲区的数据长度 DWORD dwUser; 用户数据 DWORD dwFlags; 标志提供有关缓冲区的信息。详见MSDN DWORD dwLoops; 循环播放的次数,仅用于输出缓冲器 struct wavehdr_tag * lpNext; 保留 DWORD reserved; 保留 } WAVEHDR;
WAVEFORMATEX
该结构定义的波形的音频数据的格式。只有共同所有波形的音频数据格式的格式信息被包括在这种结构。对于需要更多的信息格式,该结构被包括在另一种结构第一部件,伴随着的附加信息。
typedef struct { WORD wFormatTag; 波形音频格式类型。格式标记注册的微软公司的很多压缩算法。格式标签的完整列表可以在MMREG.H头文件中找到。 WORD nChannels; 在波形的音频数据的通道数。单声道的数据使用一个通道,立体声数据使用两个通道。 DWORD nSamplesPerSec; 采样速率,以每秒(赫兹)的样品,每个通道应被播放或录制。如果wFormatTag是WAVE_FORMAT_PCM,然后nSamplesPerSec共同的价值观是8.0千赫,11.025千赫,22.05 kHz和44.1 kHz的。对于非PCM格式,这件必须根据制造商的格式标记的规范来计算。 DWORD nAvgBytesPerSec; 所需的平均数据传输速率,以每秒字节的格式标记。如果wFormatTag是WAVE_FORMAT_PCM,nAvgBytesPerSec应等于nSamplesPerSec和nBlockAlign的乘积。对于非PCM格式,这件必须根据制造商的格式标记的规范来计算。 播放和录制软件,可以通过使用nAvgBytesPerSec成员估计缓冲区大小。 WORD nBlockAlign; 块对齐,以字节为单位。块对齐用于wFormatTag格式类型数据的最小基本单位。如果wFormatTag是WAVE_FORMAT_PCM,nBlockAlign应等于nChannels和wBitsPerSample的乘积/8(每字节比特)。对于非PCM格式,这件必须根据制造商的格式标记的规范来计算。 播放和录制软件必须处理的数据nBlockAlign字节的倍数的时间。书面和从设备读取数据必须开始于一个块的开始。例如,它是非法的开始播放在样品的中间PCM数据(也就是,在一个非块对齐的边界)。 WORD wBitsPerSample; 采样位数用于wFormatTag格式类型。如果wFormatTag是WAVE_FORMAT_PCM,然后wBitsPerSample应等于8或16。对于非PCM格式,这件必须根据制造商的格式标记的规范来设置。请注意,某些压缩方案不能定义为wBitsPerSample一个值,因此该构件可以是零。 WORD cbSize; 大小以字节为单位的额外格式信息追加到WAVEFORMATEX结构的末端。此信息可用于通过非PCM格式来存储额外用于wFormatTag属性。如果没有额外的信息所必需的wFormatTag,这个部件必须被设置为零。请注意,对于WAVE_FORMAT_PCM格式(只有WAVE_FORMAT_PCM格式),这个成员被忽略。 } WAVEFORMATEX;
函数信息
//这里获取到声音设备句柄使用的是waveInOpen函数,在那里进行的初始化。
返回装置的数量。返回的零值表示没有设备存在或发生了错误。
UINT waveInGetNumDevs(VOID);
该函数检索一个给定的波形音频输入设备的能力。
MMRESULT waveInGetDevCaps(
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/70400.html