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

时间:2015-10-03 18:31:12

标签: c# windows-phone-8.1 windows-store-apps

我正在制作使用手机相机的应用程序。当我检查是否支持焦点时,我会根据班级收到不同的答案:

MediaCapture:

var _mediaCapture = new MediaCapture();

// _mediaCapture initialization

if (_mediaCapture.VideoDeviceController.FocusControl.Supported) // false
{
    // ...
}

if (_mediaCapture.VideoDeviceController.Focus.Capabilities.Supported) // false
{
    // ...
}

PhotoCamera:

PhotoCamera camera;

// camera initialization

if (camera.IsFocusSupported) // TRUE
{
    // ...
}

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

4 个答案:

答案 0 :(得分:1)

尝试配置MediaCapture:

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

答案 1 :(得分:1)

虽然我可能会迟到,但我在使用微软Lumia 532时遇到了类似的问题,而它在诺基亚Lumia 530上运行得非常好。

问题可能是由于Lumia 530没有支持焦点或类似的东西(它可能会发生在你的设备上)。

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

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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