焦点在 MediaCapture 中不受支持,但在 PhotoCamera 中可用

本文关键字:PhotoCamera 但在 MediaCapture 焦点 支持 | 更新日期: 2023-09-27 18:16:04

我正在制作一个使用手机摄像头的应用程序。当我检查焦点是否受支持时,我会收到不同的响应,具体取决于类:

媒体捕获:

var _mediaCapture = new MediaCapture();
// _mediaCapture initialization
if (_mediaCapture.VideoDeviceController.FocusControl.Supported) // false
{
    // ...
}
if (_mediaCapture.VideoDeviceController.Focus.Capabilities.Supported) // false
{
    // ...
}

摄影相机:

PhotoCamera camera;
// camera initialization
if (camera.IsFocusSupported) // TRUE
{
    // ...
}

我的手机如果使用PhotoCamera,可以正确对焦,但我需要使用MediaCapture

焦点在 MediaCapture 中不受支持,但在 PhotoCamera 中可用

尝试配置 MediaCapture:

    MediaCapture.VideoDeviceController.FocusControl.Configure(new FocusSettings { Mode = FocusMode.Manual, Value = 100, DisableDriverFallback = true });
    await MediaCapture.VideoDeviceController.FocusControl.FocusAsync();
虽然

我可能会迟到,但我在诺基亚Lumia 530上完美运行时,Microsoft Lumia 532也遇到了类似的问题。

问题可能是由于Lumia 530不支持对焦或类似的东西(您的设备也可能发生同样的情况(。

我解决了将configure封装在try{} catch{}块上的问题,如下所示:

try {
    mediaCapture.VideoDeviceController.FocusControl.Configure(FocusSettings);
} catch (Exception exception) {
    // Do something with the exception
}

我没有注意到图像质量有任何差异,无论有没有FocusSettings,但这可能是因为我处理图像的方式。

问题是由手机固件引起的。我已经在 Lumia 上测试了该应用程序,它可以工作。

在设置之前,请尝试检查相机是否支持该FocusMode。试试这个:

if (_mediaCapture.VideoDeviceController.FocusControl.SupportedFocusModes != null && _mediaCapture.VideoDeviceController.FocusControl.SupportedFocusModes.Contains(FocusMode.Auto))
{
    _mediaCapture.VideoDeviceController.FocusControl.Configure(new FocusSettings { Mode = FocusMode.Auto });
}
相关文章: