没有预览的自动对焦相机

Auto focus camera without preview

我是 运行 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 information: Preview sink not set

当我尝试集中注意力时。我在网上看到的所有示例都显示预览输出到控件,我假设它会自动连接一个接收器。有没有办法通过代码手动执行此操作?可能没有预览?

我想知道即使没有 FocusControl,代码是否也能正常工作。

我建议您按照 http://www.codeproject.com/Tips/772038/Custom-Media-Sink-for-Use-with-Media-Foundation-To

中描述的 Customer Media Sink 实施示例和 StartPreviewToCustomSinkIdAsync 方法的使用

我没有找到执行此操作的方法。我最终将后台应用程序转换为 UI 应用程序,其中 Page 包含 CaptureElement 控件以便预览和聚焦。

无需添加 UI,只需创建一个 CaptureElement 并将源设置为 _mediaCapture,然后再调用 await _mediaCapture.StartPreviewAsync();

类似于:

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

  await _mediaCapture.InitializeAsync(...);

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