问题描述
上下文
我正在尝试构建一个图像过滤器应用程序,在该应用程序中,该应用程序将获取用户选择的相机框架,在框架上应用一些过滤器,创建虚拟相机设备并将该框架发送到该虚拟相机。我成功完成了所有这些操作,除了必须隐藏实际的摄像头设备,因为我的应用程序正在使用它,并且其他应用程序(假定缩放/会议)应该看到我的虚拟摄像头而不是实际的摄像头设备。
我已经能够在obs-virtual-cam的obs-virtualsource.dll
的帮助下创建虚拟相机并向其中发送帧。
所需结果
我需要为Microsoft的设备枚举DLL创建某种包装。注册我的包装器后,它将修改系统返回到应用程序的设备列表。可以将设置保存在注册表中,并在其他进程的上下文中调用。
我想要的答案
我精通C / C ++,但是新手是COM和MS Media Foundation API。因此,即使不能直接在答案中解决问题,我也欢迎并链接或指导以正确的方向开始解决此特定问题。
解决方法
Microsoft Media Foundation API不提供隐藏设备相机的方法。既不适用于使用Media Foundation来访问摄像机的应用程序,也不适用于不使用Media Foundation来访问摄像机的应用程序。