焦点在 MediaCapture 中不受支持,但在 PhotoCamera 中可用
Focus not supported in MediaCapture, but it is available in PhotoCamera
我正在制作一个使用 phone 相机的应用程序。当我检查是否支持焦点时,我收到不同的响应,具体取决于 class:
媒体捕捉:
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
{
// ...
}
我的手机 phone 如果使用 PhotoCamera
会正确对焦,但我需要使用 MediaCapture
。
尝试配置您的 MediaCapture:
MediaCapture.VideoDeviceController.FocusControl.Configure(new FocusSettings { Mode = FocusMode.Manual, Value = 100, DisableDriverFallback = true });
await MediaCapture.VideoDeviceController.FocusControl.FocusAsync();
问题是我手机的固件问题phone。我已经在 Lumia 上测试了该应用程序,它可以正常工作。
虽然我可能来晚了,但我在使用 Microsoft Lumia 532 时也遇到了类似的问题,而它在诺基亚 Lumia 530 上运行得很好。
问题可能是由于 Lumia 530 不支持焦点或类似原因(您的设备可能会出现同样的情况)。
我解决了将 configure
封装在 try{} catch{}
块上的问题,如下所示:
try {
mediaCapture.VideoDeviceController.FocusControl.Configure(FocusSettings);
} catch (Exception exception) {
// Do something with the exception
}
我没有注意到使用或不使用 FocusSettings
图像质量有任何差异,但这可能是因为我处理图像的方式。
设置前请先检查相机是否支持FocusMode
。试试这个:
if (_mediaCapture.VideoDeviceController.FocusControl.SupportedFocusModes != null && _mediaCapture.VideoDeviceController.FocusControl.SupportedFocusModes.Contains(FocusMode.Auto))
{
_mediaCapture.VideoDeviceController.FocusControl.Configure(new FocusSettings { Mode = FocusMode.Auto });
}
我正在制作一个使用 phone 相机的应用程序。当我检查是否支持焦点时,我收到不同的响应,具体取决于 class:
媒体捕捉:
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
{
// ...
}
我的手机 phone 如果使用 PhotoCamera
会正确对焦,但我需要使用 MediaCapture
。
尝试配置您的 MediaCapture:
MediaCapture.VideoDeviceController.FocusControl.Configure(new FocusSettings { Mode = FocusMode.Manual, Value = 100, DisableDriverFallback = true });
await MediaCapture.VideoDeviceController.FocusControl.FocusAsync();
问题是我手机的固件问题phone。我已经在 Lumia 上测试了该应用程序,它可以正常工作。
虽然我可能来晚了,但我在使用 Microsoft Lumia 532 时也遇到了类似的问题,而它在诺基亚 Lumia 530 上运行得很好。
问题可能是由于 Lumia 530 不支持焦点或类似原因(您的设备可能会出现同样的情况)。
我解决了将 configure
封装在 try{} catch{}
块上的问题,如下所示:
try {
mediaCapture.VideoDeviceController.FocusControl.Configure(FocusSettings);
} catch (Exception exception) {
// Do something with the exception
}
我没有注意到使用或不使用 FocusSettings
图像质量有任何差异,但这可能是因为我处理图像的方式。
设置前请先检查相机是否支持FocusMode
。试试这个:
if (_mediaCapture.VideoDeviceController.FocusControl.SupportedFocusModes != null && _mediaCapture.VideoDeviceController.FocusControl.SupportedFocusModes.Contains(FocusMode.Auto))
{
_mediaCapture.VideoDeviceController.FocusControl.Configure(new FocusSettings { Mode = FocusMode.Auto });
}