0

我已将来自https://github.com/Redth/ZXing.Net.Mobile的 ZXing.Mobile.Net 的源代码用于 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");
}

当它工作正常时,我也在输出中发现了这个异常:

抛出异常:System.Private.CoreLib.dll GetPreviewFrame 中的“System.ArgumentException”失败:System.ArgumentException:值不在预期范围内。在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter`1 .GetResult() 在 ZXing.Mobile.ZXingScannerControl.<>c__DisplayClass16_0.<b__1>d.MoveNext()

4

0 回答 0