C# 使用 DirectShow 调用摄像头录像教程
要使用 DirectShow 在 C# 中调用摄像头录像,可以按照以下步骤进行操作:
-
首先,确保您的计算机上已安装 DirectShow。您可以从 Microsoft 官方网站下载 DirectShow 开发包。
-
在 Visual Studio 中创建一个新的 C# 项目。
-
在项目中添加对 DirectShow 库的引用。右键单击项目,选择'添加引用',然后在'COM' 选项卡中找到并选择'DirectShow' 库。
-
在代码中导入 DirectShow 的命名空间,以便可以使用相关的类和接口。
using DirectShowLib;
- 创建一个 DirectShow 的 FilterGraph 对象和 CaptureGraphBuilder2 对象,用于管理和控制摄像头。
FilterGraph graph = new FilterGraph();
CaptureGraphBuilder2 captureGraphBuilder = new CaptureGraphBuilder2();
- 枚举摄像头设备并选择要使用的设备。您可以使用 DirectShow 提供的类和接口来实现此操作。
DsDevice[] videoDevices = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);
if (videoDevices.Length > 0)
{
// 选择第一个摄像头设备
IBaseFilter captureFilter = null;
Guid captureDeviceGuid = videoDevices[0].DevicePath;
graph.AddSourceFilterForMoniker(captureDeviceGuid, null, videoDevices[0].Name, out captureFilter);
}
- 创建一个渲染器对象,用于将摄像头的输出渲染到屏幕上。
IBaseFilter renderer = (IBaseFilter)new VideoRenderer();
graph.AddFilter(renderer, 'Video Renderer');
- 使用 CaptureGraphBuilder2 对象将摄像头的输出连接到渲染器。
captureGraphBuilder.SetFiltergraph(graph);
captureGraphBuilder.RenderStream(PinCategory.Capture, MediaType.Video, captureFilter, null, renderer);
- 开始录像并显示摄像头的输出。
IMediaControl mediaControl = (IMediaControl)graph;
// 开始录像
mediaControl.Run();
以上是使用 DirectShow 在 C# 中调用摄像头录像的基本步骤。您可以根据自己的需求进行进一步的定制和调整。
原文地址: https://www.cveoy.top/t/topic/qqDb 著作权归作者所有。请勿转载和采集!