首页 > 解决方案 > 使用 C# 和 Aforge 在 Picturebox 中未显示 USB 摄像头馈送

问题描述

我有一个 C# Winforms 项目,我必须在其中从外部网络摄像头(Logitech HD Pro C920)捕获图像。我正在使用 Aforge 媒体库。视频输入设备列表出现了,笔记本电脑的内部网络摄像头正在连接,流正在显示在图片框中。

但是,来自 USB cam 的流不会显示在图片框中,即使它被列为视频输入设备。相关代码如下所示:

cam = new VideoCaptureDevice(webcam[cbCameras.SelectedIndex].MonikerString);
cam.NewFrame +=new NewFrameEventHandler(cam_NewFrame);
cam.Start();

void cam_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
    Bitmap bit = (Bitmap)eventArgs.Frame.Clone();
    picPhoto.Image = bit;
}

我在哪里想念它?谢谢

标签: c#aforge

解决方案


最后我通过改变选择网络摄像头的方式找到了解决方案。现在,我选择了 AForge 提供的表单(VideoCaptureDeviceForm)。

这是代码:

private void BtnCamSelection_Click(object sender, RoutedEventArgs e)
{
    VideoCaptureDeviceForm form = new VideoCaptureDeviceForm();
    if(form.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        this.pVideoSource = form.VideoDevice;

    }

}

然后,我aforge:VideoSourcePlayer用变量pVideoSource.


推荐阅读