自动对焦相机无需预览

时间:2016-03-08 20:19:25

标签: win-universal-app raspberry-pi2 windows-10-iot-core

我在pi 2上运行Win10 IoT。我需要能够拍摄聚焦但无法使焦点工作的照片。该应用程序是一个后台应用程序,所以我没有办法在显示器上预览相机。有没有办法做到这一点?目前我有

await _mediaCapture.StartPreviewAsync();
_mediaCapture.VideoDeviceController.FocusControl.Configure(new FocusSettings
{
    Mode = FocusMode.Continuous,
    WaitForFocus = true
});
await _mediaCapture.VideoDeviceController.FocusControl.FocusAsync();
await _mediaCapture.CapturePhotoToStreamAsync(ImageEncodingProperties.CreateJpeg(), stream);
await _mediaCapture.StopPreviewAsync();

但我收到了错误

  

WinRT信息:未设置预览接收器

当我试着集中注意力时。我在网上看到的所有例子都显示预览输出到控件,我认为它会自动连接下沉。有没有办法通过代码手动执行此操作?可能没有预览?

3 个答案:

答案 0 :(得分:0)

我想知道即使没有if($login!=''&&$passwd!='') 代码也可以工作。

我建议您关注客户媒体接收器实施示例并使用http://www.codeproject.com/Tips/772038/Custom-Media-Sink-for-Use-with-Media-Foundation-To

中描述的FocusControl方法

答案 1 :(得分:0)

我没有办法做到这一点。我最终将后台应用转换为包含Page控件的CaptureElement的UI应用,以便预览和关注。

答案 2 :(得分:0)

在调用_mediaCapture之前,只需创建一个CaptureElement并将源设置为await _mediaCapture.StartPreviewAsync();,而不是添加用户界面

类似的东西:

  _captureElement = new CaptureElement { Stretch = Stretch.Uniform };
  _mediaCapture = new MediaCapture();

  await _mediaCapture.InitializeAsync(...);

  _captureElement.Source = _mediaCapture;
  await _mediaCapture.StartPreviewAsync();