我正在使用 DirectShow 在 windows Embedded ce 6.0 中开发程序。我用 C/C++ 编写程序。
该程序需要处理多个音频输入设备。
我能够在 directshow 中获得可用的音频输入设备,但不知道如何指定输入设备并从中捕获音频。
有什么办法吗?谢谢!
我正在使用 DirectShow 在 windows Embedded ce 6.0 中开发程序。我用 C/C++ 编写程序。
该程序需要处理多个音频输入设备。
我能够在 directshow 中获得可用的音频输入设备,但不知道如何指定输入设备并从中捕获音频。
有什么办法吗?谢谢!
// 首先,使用以下代码创建音频过滤器
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
}
}