请问下用directshow枚举摄像头设备的时候,怎么区分虚拟摄像头和实体摄像头?

terryBoom 2016-09-28 03:23:20
我在用的是directshow获取摄像头信息,
前面一大堆枚举各种接口就忽略了,直接读取属性了。
IPropertyBag* pBag = NULL;
hr = moniker->BindToStorage(0, 0, IID_IPropertyBag, (void**)&pBag);
if (hr != S_OK)
{
continue;
}
VARIANT var;
var.vt = VT_BSTR;
hr = pBag->Read(L"FriendlyName", &var, NULL);、
VARIANT varDes;
VARIANT temp;
temp.vt = VT_BSTR;
hr = pBag->Read(L"Description", &temp, NULL);
用IPropertyBag::read接口可以读取设备的友好名称,但是却读取不到设备描述信息。请问下有没有方法能够区分虚拟摄像 头和实体摄像头呢?
...全文
487 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-09-30
  • 打赏
  • 举报
回复
引用 4 楼 ny123456game 的回复:
确实要枚举图像设备的硬件信息,我用的是windows提供的SetupAPI库,把SetupAPI枚举出来的图像设备和directshow里枚举出来的一比较就能知道哪些是实体哪些是虚拟摄像头了
估计devcon内部也是调用SetupAPI
terryBoom 2016-09-29
  • 打赏
  • 举报
回复
确实要枚举图像设备的硬件信息,我用的是windows提供的SetupAPI库,把SetupAPI枚举出来的图像设备和directshow里枚举出来的一比较就能知道哪些是实体哪些是虚拟摄像头了
赵4老师 2016-09-29
  • 打赏
  • 举报
回复
引用 2 楼 ny123456game 的回复:
引用 1 楼 zhao4zhong1 的回复:
搜“devcon”?
只能枚举到FriendlyName,DevicePath,CLSID三个属性,目前我手上拥有的实体摄像头的CLSID都是17CCA71B-ECD7-11D0-B908-00A0C9223196,不知道这个CLSID能不能说明问题。还想请教赵老师
我只知道用devcon可以列举系统中的所有设备的详细信息。
terryBoom 2016-09-28
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
搜“devcon”?
只能枚举到FriendlyName,DevicePath,CLSID三个属性,目前我手上拥有的实体摄像头的CLSID都是17CCA71B-ECD7-11D0-B908-00A0C9223196,不知道这个CLSID能不能说明问题。还想请教赵老师
赵4老师 2016-09-28
  • 打赏
  • 举报
回复
搜“devcon”?

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧