我在 c# 中有一个程序,它使用我的本地网络摄像头来捕获和存储图像。我有按钮可以点击开始、停止、继续等。当我运行程序时,它在我打开系统后第一次正常工作,但在同一件事的连续执行中我得到一个错误(在 pop-上窗口):
捕获视频图像时发生错误。现在将终止视频捕获。对象引用未设置为对象的实例。
我认为这可能是因为相机设备,没有释放它使用的内存。那么,当我单击退出按钮时,如何以编程方式释放它?下面是程序的一部分,我在 webcam.start(0) 方法中遇到错误
命名空间 WinFormCharpWebCam {
class WebCam
{
private WebCamCapture webcam;
private System.Windows.Forms.PictureBox _FrameImage;
private int FrameNumber = 30;
public void InitializeWebCam(ref System.Windows.Forms.PictureBox ImageControl)
{
webcam = new WebCamCapture();
webcam.FrameNumber = ((ulong)(0ul));
webcam.TimeToCapture_milliseconds = FrameNumber;
webcam.ImageCaptured += new WebCamCapture.WebCamEventHandler(webcam_ImageCaptured);
_FrameImage = ImageControl;
}
void webcam_ImageCaptured(object source, WebcamEventArgs e)
{
_FrameImage.Image = e.WebCamImage;
}
public void Start()
{
webcam.TimeToCapture_milliseconds = FrameNumber;
webcam.Start(0); //error pops up when the execution comes to this method
}
public void Stop()
{
webcam.Stop();
}
public void Continue()
{
// change the capture time frame
webcam.TimeToCapture_milliseconds = FrameNumber;
// resume the video capture from the stop
webcam.Start(this.webcam.FrameNumber);
}
public void ResolutionSetting()
{
webcam.Config();
}
public void AdvanceSetting()
{
webcam.Config2();
}
}
}