2015-08-24 52 views
0

標題可能聽起來令人困惑,但在這裏解釋不好。我正在製作一個程序,使用「簡易網絡攝像頭」外部參照將攝像頭捕捉顯示在圖片框中。如果我打開我的電腦,進入VS,打開項目並運行,它將工作,顯示我的攝像頭捕獲。如果我停止該程序,然後再次運行它,當我嘗試顯示它時,彈出窗口要求我選擇一個視頻源,沒有任何選項甚至是我的網絡攝像頭,然後會出現另一個彈出窗口說運行一次後無法查看攝像頭。 C#

「而捕獲視頻圖像的發生錯誤。視頻捕捉現在將終止。

對象引用不設置到對象」

我能想到的唯一的事情就是安實例第一時間的設定照相機,但當我關閉它即時關閉不正確,所以當我再次運行它,它不會工作。反正繼承人的相關代碼,裸露一點,如果回答,我不是有經驗的編碼所以有時候,當你可能要拼的東西了

using WebCam_Capture; 

namespace WindowsWebRef 
{ 
public partial class Frm_Main : Form 
{ 
    public Frm_Main() 
    { 
     InitializeComponent(); 
    } 
    WebCam webcam; 
    private void button1_Click(object sender, EventArgs e) 
    { 
     webcam.Start(); 
    } 

    private void Frm_Main_Load(object sender, EventArgs e) 
    { 
     webcam = new WebCam(); 
     webcam.InitializeWebCam(ref WebCamIMG); 
    } 

與攝像頭類...

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); 
    } 

回答

0

重新啓動電腦,一定要添加webcam.Stop();,否則您的程序將會保留在網絡攝像頭中,並使其無法用於任何其他應用程序(或該程序的不同實例)。