gpt4 book ai didi

c# - Windows Phone 8.1 RT Zxing.net 实现 : issue with CapturePhotoToStreamAsync

转载 作者:行者123 更新时间:2023-11-30 17:44:44 27 4
gpt4 key购买 nike

我正在使用 ZXing.net 创建一个用户控件,用于使用相机将条形码扫描到 Windows Phone 8.1 RT 应用程序中。

条形码解码良好,但在调用 CapturePhotoToStreamAsync 方法时我在 UI 上卡住,即使它正在等待。执行大约需要 600 毫秒。

我正在模拟器中测试该应用。

下面的代码是在异步方法中执行的:

// Preview of the camera    
await _mediaCapture.InitializeAsync(settings);
VideoCapture.Source = _mediaCapture;
VideoCapture.FlowDirection = Windows.UI.Xaml.FlowDirection.LeftToRight;
await _mediaCapture.StartPreviewAsync();

VideoEncodingProperties res = _mediaCapture.VideoDeviceController.GetMediaStreamProperties(MediaStreamType.VideoPreview) as VideoEncodingProperties;
ImageEncodingProperties iep = ImageEncodingProperties.CreateBmp();

iep.Height = res.Height;
iep.Width = res.Width;

var barcodeReader = new BarcodeReader
{
TryHarder = true,
AutoRotate = true
};

WriteableBitmap wB = new WriteableBitmap((int)res.Width, (int)res.Height);
while (_result == null)
{
using (var stream = new InMemoryRandomAccessStream())
{
await _mediaCapture.CapturePhotoToStreamAsync(iep, stream);

stream.Seek(0);
await wB.SetSourceAsync(stream);

_result = barcodeReader.Decode(wB);
}
}

await _mediaCapture.StopPreviewAsync();
//callback to handle result
ScanCallback(_result.Text);

如何防止 UI 卡住?

最佳答案

幸运的是,您无需拍摄照片即可在 Windows Phone 8.1 运行时解码二维码/条形码。这实际上是一个相当新的解决方案,但它有效:https://github.com/mmaitre314/VideoEffect#realtime-video-analysis-and-qr-code-detection安装 nuget 包后,您可以轻松实时解码条形码,无需调用 CapturePhotoToStreamAsync。唯一的缺点是您只能针对 ARM。您可以在网站上找到示例代码。或者您可以联系我,我可以将我使用它的项目部分发送给您。

关于c# - Windows Phone 8.1 RT Zxing.net 实现 : issue with CapturePhotoToStreamAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29096754/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com