Я реализую приложение Windows Phone 8.1 с устройством чтения QR-кода. Я использую ZXing.NET для анализа полученного изображения и попытаюсь разобрать QR. Чтобы повысить его эффективность, я также установил автофокусировку камеры. Он работает очень хорошо при первом запуске, но не со второй попытки (т. Е. После приостановки - возобновить или перезапустить захват). Когда я тестировал, метод FocusAsync не возвращает и блокирует все.Windows Phone 8.1 FocusAync MediaCapture не работает
Что здесь происходит? В чем может быть проблема?
Вот мой текущий код.
Фокус
var focusSettings = new Windows.Media.Devices.FocusSettings();
focusSettings.AutoFocusRange = Windows.Media.Devices.AutoFocusRange.Normal;
focusSettings.Mode = Windows.Media.Devices.FocusMode.Auto;
CaptureManager.VideoDeviceController.FocusControl.Configure(focusSettings);
MainProcess
... Initialization ...
ImageEncodingProperties imaggeProperties = ImageEncodingProperties.CreateJpeg();
imaggeProperties.Width = ViewModel.ImageWidth;
imaggeProperties.Height = ViewModel.ImageHeight;
InMemoryRandomAccessStream memoryStream = new InMemoryRandomAccessStream();
LoggingAdapter.Instance.WriteDebugLog("Scanning is in progress. " + Environment.CurrentManagedThreadId);
await CaptureManager.VideoDeviceController.FocusControl.FocusAsync();
await CaptureManager.CapturePhotoToStreamAsync(imaggeProperties, memoryStream);
LoggingAdapter.Instance.WriteDebugLog("Photo captured.");
var bcReader = new BarcodeReader();
... Processing the barcode ...
Очистка
if (CaptureManager != null)
{
if (InProgress)
{
InProgress = false;
await CaptureManager.StopPreviewAsync();
}
CaptureManager.Dispose();
Capture.Source = null;
}
Спасибо за заранее!
Как вы обрабатываете приостановление & возобновление и обработку захвата медиа? –
В случае приостановки я получаю отсрочку и вызываю метод CleanCapture. Отмена происходит одинаково, но без отсрочки, конечно. Возобновление не обрабатывается, абсолютно нормально разрешить пользователю запускать его снова. –
Мне удалось реализовать рабочее решение. Я установил WaitForFocus в false в FocusSettings и, похоже, работает нормально, также с приостановкой или отменой. –