2024年5月1日发(作者:)
private void button2_Click(object sender, EventArgs e)
{
//截图
isGrab = true;
}
private void button3_Click(object sender, EventArgs e)
{
string button_text = ;
if (button_("Start Webcam"))
{
= "Stop Webcam";
StartCamera();
}
else
{
= "Start Webcam";
StopCamera();
}
}
private void StartCamera()
{
DsDevice[] devices = icesOfCat(nputDevice);
if ( == 0)
{
("No USB webcam connected");
= "Start Webcam";
return;
}
else
{
CaptureVideo(devices[0]);
}
}
private void StopCamera()
{
= "Start Webcam";
CloseInterfaces();
}
public void CaptureVideo(DsDevice device)
{
= null;
int hr = 0;
IBaseFilter sourceFilter = null;
ISampleGrabber sampleGrabber = null;
try
{
// Get DirectShow interfaces
GetInterfaces();
// Attach the filter graph to the capture graph
hr = tergraph(uilder);
xceptionForHR(hr);
// Use the system device enumerator and class enumerator to find
// a video capture/preview device, such as a desktop USB video camera.
sourceFilter = SelectCaptureDevice(device);
// Add Capture filter to graph.
hr = ter(sourceFilter, "Video Capture");
xceptionForHR(hr);
// Initialize SampleGrabber.
sampleGrabber = new SampleGrabber() as ISampleGrabber;
// Configure SampleGrabber. Add preview callback.
ConfigureSampleGrabber(sampleGrabber);
// Add SampleGrabber to graph.
hr = ter(sampleGrabber as IBaseFilter, "Frame Callback");
xceptionForHR(hr);
// Configure preview settings.
SetConfigParams(eGraphBuilder, sourceFilter, _previewFPS, _previewWidth, _previewHeight);
// Render the preview
hr = Stream(w, , sourceFilter, (sampleGrabber as IBaseFilter),null);


发布评论