1

目前,当使用捕获设备示例使用媒体捕获进行测试时,我意识到相机不是我想要的东西。我希望它处于镜像模式。目前,它不是。

  1. 对于处于镜像模式的相机预览,我可以知道它是依赖于硬件还是独立于硬件。如果我使用不同的硬件运行相同的代码,相机预览可能会处于镜像模式吗?如果它取决于硬件,我如何检查我的相机预览是否处于镜像/非镜像模式?

  2. 为了使其处于镜像模式,我尝试关注这个线程。我试试MediaCapture.SetPreviewMirroring(true)。完全没有效果。相机预览仍处于非镜像模式。

  3. 我试试captureElement.RenderTransform = new ScaleTransform() { ScaleX = -1 };。整个相机预览变成纯灰色。

  4. 我想尝试的最后一种方法是尝试通过MediaCapture.AddEffectAsync(). 但是,这需要回到我的第一个问题。我可以简单地执行翻转,还是我首先需要检查传入缓冲区是否处于镜像/非镜像模式?如果是,我该如何检查?

4

2 回答 2

1

对于那些在提出这个问题后寻找更新答案的人,UWP 和 WinUI 上的正确方法是FlowDirection="RightToLeft"CaptureElement.

<CaptureElement x:Name="previewElement" FlowDirection="RightToLeft"/>
于 2021-09-29T16:45:25.883 回答
0

采用

    <CaptureElement x:Name="previewElement" Margin="0" Stretch="UniformToFill" RenderTransformOrigin="0.5,0.5">
        <CaptureElement.RenderTransform>
            <CompositeTransform ScaleX="-1"/>
        </CaptureElement.RenderTransform>
    </CaptureElement>

关键在于RenderTransformOrigin="0.5,0.5"。我们需要从预览中心翻转。

于 2012-11-07T04:09:51.793 回答