我正在玩我的网络摄像头并开始创建一个小应用程序(使用 Microsoft Expression Encoder SDK),其中网络摄像头的图像被流式传输到 winform [1] 上的图片框。到目前为止,一切都很顺利。但现在我的问题开始了:
我想捕获视频流的单个图像并将其存储。我找到了能够创建视频文件的“ScreenCaptureJob”类。微软的 MSDN 声明可以“从对话框的静止图像中捕获任何内容”[2] 以完成视频。MSDN 中的所有示例均指视频捕获。不幸的是,我找不到任何解决方案如何使用此类捕获单个图像。
谁能帮我?
[1] 将网络摄像头流式传输到图片框的代码(来源: http: //www.codeproject.com/Articles/202464/How-to-use-a-WebCam-in-C-with-the-NET-Framework-4 )
var lstVideoDevices = new Dictionary<string, EncoderDevice>();
var lstAudioDevices = new Dictionary<string, EncoderDevice>();
foreach (EncoderDevice edv in EncoderDevices.FindDevices(EncoderDeviceType.Video))
{
lstVideoDevices.Add(edv.Name, edv);
}
foreach (EncoderDevice eda in EncoderDevices.FindDevices(EncoderDeviceType.Audio))
{
lstAudioDevices.Add(eda.Name, eda);
}
_job = new
var _deviceSource = _job.AddDeviceSource(lstVideoDevices.Values.FirstOrDefault(x => x.Name.Contains("USB")), lstAudioDevices.Values.FirstOrDefault(x => x.Name.Contains("USB")));
_deviceSource.PreviewWindow = new PreviewWindow(new HandleRef(this.pictureBox1, this.pictureBox1.Handle));
_job.ActivateSource(_deviceSource);`
[2] http://msdn.microsoft.com/en-us/library/gg602440%28v=expression.40%29.aspx