Я пишу программу, которая будет следить за видеокамерой в драйвере usbvideo и узнавать, когда нажимается кнопка камеры. Я просто хочу уведомление о событии, а не поток или изображение. Я могу заставить его работать с C # и направлять show net library, но он останавливает доступ других программ к камере.
Мой успех - использование библиотеки AForge Videdo 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 вызывается при каждом нажатии кнопки камеры. Однако никакое другое приложение не может получить доступ к камере.