我正在通用 Windows 平台上开发适用于 Windows 10 手机的应用程序。我需要从设备相机获取一帧并进行一些处理;这应该在后台发生,用户不应该在 UI 的任何地方看到相机提要。
有两个类处理最常见的用例,即 CameraCaptureUI和 MediaCapture . MediaCapture 类允许获取所谓的预览帧,但整个工作流围绕着将 MediaCapture 实例绑定(bind)到 UI 控件(即 CaptureElement),如果我不这样做,那么我将无法获取预览帧。这使得 MediaCapture 类不适合我的情况,除非有另一种我不知道的使用方法。
相关问题的答案 How to get preview buffer of MediaCapture - Universal app建议使用 Lumia Imaging SDK,但它针对的是 Windows 8 系列,其中使用的类和方法现已在当前的 Windows 10 Lumia Imaging SDK 中弃用。
此外,上述答案带来了自定义媒体接收器,但我不确定这是否对我的情况有帮助,如果是,那么我应该从哪里开始。
总而言之,我如何从相机设备获取可用于在 Windows 10 通用应用程序中进行进一步处理的帧?
最佳答案
为此,您有多种选择。 CameraCaptureUI 不是其中之一。
- 隐藏 CaptureElement
- 不透明度 = 0
- Visibility.Collapsed
- 在代码中创建它,不要将它添加到您的布局中
- 等等
- StartPreviewToCustomSink ( https://msdn.microsoft.com/en-us/library/windows/apps/hh700850.aspx ) 尽管我从未这样做过。 This link也可能有所帮助。
完成后,您可以拍照或只获取预览帧。 CameraStarterKit会教你前者,CameraGetPreviewFrame将教你后者。
关于c# - 如何在通用 Windows 平台中访问相机帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33375679/