我想通过C中的麦克风捕获和处理音频输入。我无法找到处理输入设备的特定功能。所以我转而使用Windows的MCI来不使用其他开源工具/软件。
在尝试将特定于MCI的函数应用于记录,处理和保存为.WAV
文件时,我遇到了许多引用其他内置库的错误。例如,这是我通过网络获取的一个示例代码:
#include <windows.h>
#include <mmsystem.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
HWAVEOUT hWaveOut;
WAVEFORMATEX wfx;
MMRESULT result;
wfx.nSamplesPerSec = 44100;
wfx.wBitsPerSample = 16;
wfx.nChannels = 2;
wfx.cbSize = 0;
wfx.wFormatTag = WAVE_FORMAT_PCM;
wfx.nBlockAlign = (wfx.wBitsPerSample >> 3) * wfx.nChannels;
wfx.nAvgBytesPerSec = wfx.nBlockAlign * wfx.nSamplesPerSec;
if(waveOutOpen(&hWaveOut, WAVE_MAPPER,&wfx,0,0,CALLBACK_NULL) != MMSYSERR_NOERROR)
{
fprintf(stderr, "unable to open WAVE_MAPPER device\n");
ExitProcess(1);
}
printf("The Wave Mapper device was opened successfully!\n");
waveOutClose(hWaveOut);
return 0;
}