0
我正在使用QR碼閱讀器實現Windows Phone 8.1應用程序。我使用ZXing.NET分析拍攝的圖像並嘗試解析QR。爲了提高效率,我還爲相機設置了自動對焦。它在第一次啓動時工作得很好,但不是第二次嘗試(在暫停後 - 即繼續或重新啓動捕獲後)。正如我測試的那樣,FocusAsync方法有時不會返回並阻止一切。Windows Phone 8.1 MediaCapture的FocusAsync不起作用
這裏會發生什麼?可能是什麼問題呢?
這是我目前的代碼。
焦點
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方法。通過取消發生的情況也是如此,但當然沒有延期。不處理恢復,讓用戶重新啓動它是絕對沒問題的。 –
我成功實施了一個工作解決方案。我在FocusSettings中將WaitForFocus設置爲false,它看起來工作正常,還有暫停或取消。 –