< /p>
// 연결할 때 객체를 다시 정의했기 때문에 코드를 살펴보았습니다. 조금만 고치면 됩니다.
Using? 시스템; < /p>
using? System.Collections.Generic;; < /p>
using? System.ComponentModel;; < /p>
using? System.Data;; < /p>
using? System.Drawing;; < /p>
using? System.Drawing.Imaging;; < /p>
using? System.Text;; < /p>
using? System.Windows.Forms;; < /p>
using? System.Threading;; < /p>
using? A forge; < /p>
using? A forge.video; < /p>
using? A forge.video.directshow; < /p>
using? A forge.imaging; < /p>
using? A forge.imaging.filters; < /p>
using? System.IO;; < /p>
namespace? Camera
{
public? Partial? 클래스? 양식 1? :? Form
{
private? FilterInfoCollection? 비디오 디바이스;
공용? VideoCaptureDevice? 비디오 소스; -응? < /p>
private? Int? Flag? =? 1; < /p>
private? 문자열? 디르크? =? System.appdomain.currentdomain.basedirectory? +? "JPG"; -응? //저장된 디렉토리 캡처?
공용? Form1 ()
{
initializecomponent (); < /p>
}
private? Void? Form1 _ load (개체? Sender,? EventArgs? E)
{
if? (! Directory.exists (dirc))
directory.createdirectory (dirc); -응? < /p>
try
{
//? 모든 비디오 입력 장치 열거
비디오 장치? =? 새? Filterinfocollection (filtercategory.videoinputdevice); < /p>
if? (videoDevices.Count? = =? 0)
throw? 새? Application exception (); < /p>
foreach? (필터 정보? Device? In? 비디오 디바이스)
{
tscbxcameras.items.add (device.name);
}
tscbxcameras.selectedindex? =? 0; < /p>
}
catch? (application exception)
{
tscbxcameras.items.add ("no?" ? 로칼? Capture? 디바이스 ");
비디오
Evices? =? Null;; < /p>
}
}
private? Void? ToolStripButton1_Click(object? Sender,? EventArgs? E)
{
camera conn (); < /p>
}
private? Void? CameraConn()
{// 여기서 객체를 재정의한 결과 오류 발생 < /p>
videoSource? =? 새? Videocapturedevice (video devices [tscbxcameras.selectedindex]. monikerstring);
비디오 소스. desiredframesize? =? 새? 크기 (320,? 240);
비디오 소스. desired frame rate? =? 1; < /p>
videPlayer.VideoSource? =? 비디오 소스;
videplayer.start (); < /p>
}
private? Void? ToolStripButton2_Click(object? Sender,? EventArgs? E)
{
videplayer.signal to stop ();
videplayer.waitforstop (); < /p>
}
private? Void? Form1_FormClosing(object? Sender,? FormClosingEventArgs? E)
{
toolstripbutton2 _ click (null,? Null); < /p>
}
private? Void? ToolStripButton3_Click(object? Sender,? EventArgs? E)
{
// 스크린샷을 이해하지 못하지만 < /p>
flag 를 간단히 보완해 드릴까요? =? 0; < /p>
if? (비디오 소스? = =? Null)
{
messagebox.show ("카메라 먼저 연결"); < /p>
}
else? If? (! Videosource.isrunning)
{
messagebox.show ("카메라가 꺼져 있습니다. 다시 켜십시오");
}
else
{
videosource.new frame? +=? 새? Newframeeventhandler (video _ newframe); < /p>
}
}
private? Void? Video _ newframe (개체? Sender,? NewFrameEventArgs? 이벤트)
{
bitmap? 비트맵? =? (bitmap) eventargs.frame.clone (); < /p>
if? (flag? = =? 0)
{
string? Img? =? 디르크? +? "/"? +? Datetime.now.tostring ("yyyymmdd hhmmss")?
+? ".jpg";
< p /p>bitmap.Save(img);); < /p>
flag? =? 1; < /p>
}
}? < /p>
}
}