我正在玩弄网络摄像头,并开始创建一个小型应用程序(使用Microsoft Expression Encoder SDK),其中网络摄像头的图像将流式传输到winform上的图片框[1 ]。到目前为止,一切都非常顺利。但现在我的问题开始:使用Microsoft Expression Encoder SDK捕获静止图像
我想捕获视频流的单个图像并将其存储。我找到了能够创建视频文件的“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