要使用 DirectShow 在 C# 中调用摄像头录像,可以按照以下步骤进行操作:

  1. 首先,确保您的计算机上已安装 DirectShow。您可以从 Microsoft 官方网站下载 DirectShow 开发包。

  2. 在 Visual Studio 中创建一个新的 C# 项目。

  3. 在项目中添加对 DirectShow 库的引用。右键单击项目,选择'添加引用',然后在'COM' 选项卡中找到并选择'DirectShow' 库。

  4. 在代码中导入 DirectShow 的命名空间,以便可以使用相关的类和接口。

using DirectShowLib;
  1. 创建一个 DirectShow 的 FilterGraph 对象和 CaptureGraphBuilder2 对象,用于管理和控制摄像头。
FilterGraph graph = new FilterGraph();
CaptureGraphBuilder2 captureGraphBuilder = new CaptureGraphBuilder2();
  1. 枚举摄像头设备并选择要使用的设备。您可以使用 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);
}
  1. 创建一个渲染器对象,用于将摄像头的输出渲染到屏幕上。
IBaseFilter renderer = (IBaseFilter)new VideoRenderer();
graph.AddFilter(renderer, 'Video Renderer');
  1. 使用 CaptureGraphBuilder2 对象将摄像头的输出连接到渲染器。
captureGraphBuilder.SetFiltergraph(graph);
captureGraphBuilder.RenderStream(PinCategory.Capture, MediaType.Video, captureFilter, null, renderer);
  1. 开始录像并显示摄像头的输出。
IMediaControl mediaControl = (IMediaControl)graph;

// 开始录像
mediaControl.Run();

以上是使用 DirectShow 在 C# 中调用摄像头录像的基本步骤。您可以根据自己的需求进行进一步的定制和调整。

C# 使用 DirectShow 调用摄像头录像教程

原文地址: https://www.cveoy.top/t/topic/qqDb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录