c# - 如何检测 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 处理程序。但是,没有其他应用程序可以访问相机。
解决方案
推荐阅读
- r - filter() 中的 str_split()
- node.js - Docker/Reactjs/Nodejs - 如何在 docker-compose up 后安装依赖项并运行应用程序
- angular - 递归组件数据引用问题
- python - 使用带有模型字段 django 的 if 语句
- bash - Git-bash - 排序列表后将文件保存到自身中
- image - 将颜色添加到图像调色板
- r - 使用 csv_to_disk.frame 后列混乱
- javascript - 反应错误:元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:未定义
- python - 如何在 Pycharm 中添加实时模板,例如“$var$.print”
- vue.js - 如何从 vuejs 中的计算属性更新状态?