c# - 为什么 Windows 只允许一个应用程序访问网络摄像头?

标签 c# windows winapi video webcam

<分区>

我一直在尝试用 C# 制作一个示例网络摄像头应用程序,我发现该应用程序无法在 Skype 或 Oovoo 或任何其他应用程序运行的同时运行? (反之亦然)为什么应用程序会通过 webc 获得独占锁

最佳答案

视频捕获 API 的出现源于添加层以共享视频硬件在性能方面不合理的时代。此外,如果有 2 个以上的应用程序与相机配合使用,则必须让它们以某种方式就捕获格式达成一致,以使双方都满意。所以这是最简单直接的方式:你拿起相机,它就是你的,你可以根据自己的需要进行设置。然而,其他人会等待您发布硬件,然后其他人才能使用它。

您可以找到共享摄像头的第三方软件,该软件会在内部专门获取摄像头,然后公开可共享的虚拟摄像头。这会牺牲性能以换取灵 active 。

一段时间前,音频 API 也专门锁定硬件,但后来 OS API 引入了硬件抽象层来共享硬件,并在后台从多个应用程序进行混合。

关于c# - 为什么 Windows 只允许一个应用程序访问网络摄像头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9339778/

相关文章:

c# - Html.BeginForm Post 转到 HttpGet 操作而不是 IE 中的 HttpPost,在 Chrome 和 Firefox 中很好

c++ - 为什么 _WIN32_WINNT == 0x400 在 Windows 7 机器上的 Qt Creator 中?

c++ - Windows 启动时的第二次自动运行

Windows 资源管理器备用数据流外壳扩展

windows - 删除旧版本的 Ruby(在 Windows 上)

winapi - 指定以编程方式附加虚拟磁盘 (.vhd) 时要使用的驱动器号

c# - 使用自定义对象将数据绑定(bind)到 datagridview - 列标题文本

c# - 如何在 C# 中的 XML 文档注释之间跳转?

c# - NHibernate 发出无关的更新语句,而不管关系上的适当反向(流畅的 nhibernate)设置

windows - 在 Windows 上的 Go 中通过 telnet/ssh 写入现有的 tcp 套接字