ZXing.Net UWP камера зависает - PullRequest
0 голосов
/ 21 ноября 2018

Я использовал исходный код из ZXing.Mobile.Net из https://github.com/Redth/ZXing.Net.Mobile для UWP.У меня есть проблема с заморозкой камеры.Иногда это работает без проблем, но иногда, когда камера запускается, предварительный просмотр показывает некоторую аномалию со случайными пикселями, и через несколько секунд он останавливается.

В этой строке всегда зависает:

var frame = await mediaCapture.GetPreviewFrameAsync(videoFrame)

без исключения или прерывания.

System.Diagnostics.Debug.WriteLine("Linija 243");
var delay = ScanningOptions.DelayBetweenAnalyzingFrames;

if (stopping || processing || !isAnalyzing
|| (mediaCapture == null || mediaCapture.CameraStreamState != Windows.Media.Devices.CameraStreamState.Streaming))
{
    timerPreview.Change(delay, Timeout.Infinite);
    return;
}

processing = true;
SoftwareBitmapLuminanceSource luminanceSource = null;
WriteableBitmap writeableBmp = null;
try
{
    System.Diagnostics.Debug.WriteLine("Linija 263");
    var frame = await mediaCapture.GetPreviewFrameAsync(videoFrame);
    luminanceSource = new SoftwareBitmapLuminanceSource(frame.SoftwareBitmap);
    System.Diagnostics.Debug.WriteLine("Linija 266");
}

Также я нашел это исключение в Output, когда все работает нормально:

Возникло исключение: «System.ArgumentException» в System.Private.CoreLib.dll GetPreviewFrame Failed: System.ArgumentException: значение не попадает в ожидаемый диапазон.в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача-задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess.AmpServiceTackServiceTackServiceTacker.GetResult () в ZXing.Mobile.ZXingScannerControl. <> C__DisplayClass16_0.d.MoveNext ()

...