如何选择音频输入设备并在directshow中捕获音频

时间:2013-01-28 07:48:01

标签: c++ windows-ce directshow

我正在使用DirectShow在windows embedded ce 6.0中开发一个程序。 我用C / C ++编写程序。

程序需要处理多个音频输入设备

我能够在directshow中获得可用的音频输入设备, 但不知道如何指定输入设备并从中捕获音频。

有什么办法吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

//首先,使用以下代码创建音频过滤器

IBaseFilter * pDevice = NULL;  
CoCreateInstance(CLSID_AudioCapture, NULL, CLSCTX_INPROC,IID_IBaseFilter,   (void**)&pDevice);

//然后,枚举PIN以从过滤器获取输入音频名称

IEnumPins * pinEnum = NULL;  
IPin * pin = NULL;  
ULONG fetchCount = 0;  
PIN_INFO pinInfo;  
pDevice->EnumPins(&pinEnum);

while (SUCCEEDED(pinEnum->Next(1, &pin, &fetchCount)) && fetchCount)   
{  
    pin->QueryPinInfo(&pinInfo);  
    if (pinInfo.dir == PINDIR_INPUT)  
    {  
        // get name from pinInfo.achName  
    }  
}