所用库:
#include "mmsystem.h"
采集输入设备音频
void RecordWave()
{
//返回系统中的输入设备数量
int count = waveInGetNumDevs();
printf("\n音频输入数量:%d\n", count);
//检查指定输入设备特性 参数:输入设备标识/句柄;结构体指针;结构体大小
WAVEINCAPS waveIncaps;
MMRESULT mmResult = waveInGetDevCaps(0, &waveIncaps, sizeof(WAVEINCAPS));
//WAVEINCAPS 结构体参数:wMid驱动程序标识、wPid输入设备产品标识、vDriverVersion驱动程序版本号、szPname[MAXPNAMELEN]制造商名称、dwFormats支持的格式、wChannels支持的声道数
printf("\n音频输入设备:%s\n", waveIncaps.szPname);
//MMSYSERR_NOERROR执行成功;MMSYSERR_BADDEVICEID索引越界;MMSYSERR_NODRIVER没有就绪的设备;不能分配或者锁定内存
if (MMSYSERR_NOERROR == mmResult)
{
HWAVEIN phwi;
WAVEFORMATEX pwfx;
WaveInitFormat(&pwfx, 1, 8000, 8);
printf("\n请求打开音频输入设备");
printf("\n采样参数:单声道 8kHz 8bit\n");
//打开指定的音频输入设备开始录音 参数:接收打开的音频输入设备标识的HWAVEIN结构的指针;指定一个需要打开的设备标识.可以使用WAVE_MAPPER