Я использовал исходный код из 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 ()