4

问题背景 - 有两个不同的 Windows 应用程序试图同时访问计算机上的网络摄像头。目前,只有一个应用程序能够访问它。我希望能够允许两个应用程序同时访问网络摄像头。我的问题的一个常见示例是,Skype 和 yahoo messenger 试图同时访问计算机上的网络摄像头。

我发现了一些允许在 Windows 上执行此操作的软件(manycam.com、http://www.splitcamera.com/ )。但我不确定他们是如何实施的。我想自己编写代码来实现这一点,因为我的代码需要与其他 API 集成。

如果有人能阐明如何编写设备包装器来实现这一点,我将不胜感激。

4

1 回答 1

3

内核相机驱动程序注册了几个操作系统定义的回调。回调之一用于输出流。专用的 Windows 应用程序有一个到这个流的接口——你需要对这个主题做一些阅读,这不是 SO 范围内可以涵盖的东西。您需要在客户端应用程序和相机驱动程序之间分层的组件。该组件应拦截您的相机驱动程序输出并将其复制给注册的客户端。这可以在内核(过滤器驱动程序)或用户模式(首选)中实现。http://msdn.microsoft.com/en-us/library/windows/hardware/ff557573%28v=vs.85%29.aspx是一个很好的起点。

注意:您的相机软件可能已经支持此功能(尽管我认为可能性很小),在这种情况下,您应该深入研究相应的文档。

于 2012-11-07T10:31:45.777 回答