使用Media Foundation访问windows8上的默认网络摄像头

时间:2015-06-05 18:04:04

标签: c++11 ms-media-foundation

我在window8上构建了一个多媒体应用程序,我需要访问系统默认的摄像头设备(比如连接到计算机的多个网络摄像头,我需要选择系统默认设置)。我使用媒体基础框架,找不到这样的API,告诉我哪个是默认摄像头。它似乎只能返回连接到计算机的设备列表(使用MFEnumDeviceSources(pAttributes,& ppDevices,& count)函数)。在此处列出的所有捕获设备属性中: https://msdn.microsoft.com/en-us/library/windows/desktop/dd317915(v=vs.85).aspx

似乎没有这样的属性指定设备是否是默认设备。

那么如何使用Media Foundation获取默认设备?如果Media Foundation无法实现这一点,我还可以使用其他框架吗?

1 个答案:

答案 0 :(得分:1)

Media Foundation没有默认网络摄像头的概念。我建议在选项中提供一个选择器,默认为第一个设备,并保存所有更改的选择。事实上,要获得默认麦克风,您将不会使用Media Foundation。相反,您将使用IMMDeviceEnumeratorIMMDevice来获取默认值,并将其与Media Foundation中找到的设备进行比较。

与其他框架有关,我会坚持使用Media Foundation。它易于使用,性能良好。希望这会有所帮助。