首页 > 解决方案 > 如何检测 usbvideo 设备上按下的相机按钮并允许与其他应用程序共享设备?

问题描述

我正在编写一个程序,该程序将监视 usbvideo 驱动程序上的摄像机,并找出按下相机按钮的时间。我只想通知事件,而不是流或图像。我可以使它与 C# 和 directshow 网络库一起工作,但它会阻止其他程序访问相机。

我的成功一直是使用 AForge Video DirectShow 库。代码片段是(关于整个程序)


    videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
    videoDevice = new VideoCaptureDevice(videoDevices[0].MonikerString);
    snapshotCapabilities = videoDevice.SnapshotCapabilities;
    videoCapabilities = videoDevice.VideoCapabilities;

    videoDevice.ProvideSnapshots = true;
    videoDevice.SnapshotResolution = snapshotCapabilities[0];
    videoDevice.VideoResolution = videoCapabilities[0];

    videoDevice.SnapshotFrame += new NewFrameEventHandler(cameraButtonEvent);

    videoDevice.Start();

每次按下相机按钮时都会调用 cameraButtonEvent 处理程序。但是,没有其他应用程序可以访问相机。

标签: c#c++windowsvideocamera

解决方案


推荐阅读