如何初始化AForge网络摄像头

我尝试使用Aforge编写一个小的代码来捕获一个框架我引用了Aforge.dll和AForge.Video.DirectShow.dll代码如下,但我做错了。 警告我得到“名称videoDevices在当前上下文中不存在。我认为它有关于我尝试创建该变量的位置,但我不确定在哪里放置该按钮的代码以使其初始化。错误在visual studio中显示为对象“videoDevices”下的红线

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using AForge; using AForge.Video.DirectShow; namespace AforgeCam { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); if (videoDevices.Count == 0) throw new ApplicationException(); foreach (FilterInfo device in videoDevices) { VideoCaptureDevice videoSource = new VideoCaptureDevice(device.MonikerString); videoSource.DesiredFrameSize = new Size(320, 240); videoSource.DesiredFrameRate = 15; videoSourcePlayer1.VideoSource = videoSource; videoSourcePlayer1.Start(); } } } } 

根据要求,解决方案如下,代码有效,我将针对另一个问题提出一个新问题。 代码需要一个下拉框,2个按钮和一个图片框

 using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using AforgeCam; using AForge.Video; using AForge.Video.DirectShow; namespace AforgeCam { public partial class Form1 : Form { private FilterInfoCollection VideoCaptureDevices; private VideoCaptureDevice FinalVideo; public Form1() // init { InitializeComponent(); { VideoCaptureDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); foreach (FilterInfo VideoCaptureDevice in VideoCaptureDevices) { comboBox1.Items.Add(VideoCaptureDevice.Name); } comboBox1.SelectedIndex = 0; } } private void button1_Click(object sender, EventArgs e) { FinalVideo = new VideoCaptureDevice(VideoCaptureDevices[comboBox1.SelectedIndex].MonikerString); FinalVideo.NewFrame += new NewFrameEventHandler(FinalVideo_NewFrame); FinalVideo.Start(); } void FinalVideo_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap video = (Bitmap)eventArgs.Frame.Clone(); pictureBox1.Image = video; } private void button2_Click(object sender, EventArgs e) { FinalVideo.Stop(); } }