本文整理汇总了C#中Android.SetOneShotPreviewCallback方法的典型用法代码示例。如果您正苦于以下问题:C# Android.SetOneShotPreviewCallback方法的具体用法?C# Android.SetOneShotPreviewCallback怎么用?C# Android.SetOneShotPreviewCallback使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Android
的用法示例。
在下文中一共展示了Android.SetOneShotPreviewCallback方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnPreviewFrame
public void OnPreviewFrame (byte [] bytes, Android.Hardware.Camera camera)
{
try
{
var cameraParameters = camera.GetParameters();
var img = new YuvImage(bytes, ImageFormatType.Nv21, cameraParameters.PreviewSize.Width, cameraParameters.PreviewSize.Height, null);
if (barcodeReader == null)
{
barcodeReader = new BarcodeReader(null, null, null, (p, w, h, f) =>
new PlanarYUVLuminanceSource(p, w, h, 0, 0, w, h, false));
//new PlanarYUVLuminanceSource(p, w, h, dataRect.Left, dataRect.Top, dataRect.Width(), dataRect.Height(), false))
if (this.options.TryHarder.HasValue)
barcodeReader.Options.TryHarder = this.options.TryHarder.Value;
if (this.options.PureBarcode.HasValue)
barcodeReader.Options.PureBarcode = this.options.PureBarcode.Value;
if (!string.IsNullOrEmpty (this.options.CharacterSet))
barcodeReader.Options.CharacterSet = this.options.CharacterSet;
if (this.options.TryInverted.HasValue)
barcodeReader.TryInverted = this.options.TryInverted.Value;
if (this.options.PossibleFormats != null && this.options.PossibleFormats.Count > 0)
{
barcodeReader.Options.PossibleFormats = new List<BarcodeFormat>();
foreach (var pf in this.options.PossibleFormats)
barcodeReader.Options.PossibleFormats.Add(pf);
}
//Always autorotate on android
barcodeReader.AutoRotate = true;
}
//Try and decode the result
var result = barcodeReader.Decode(img.GetYuvData(), img.Width, img.Height, RGBLuminanceSource.BitmapFormat.Unknown);
lastPreviewAnalysis = DateTime.Now;
if (result != null && !string.IsNullOrEmpty (result.Text))
{
Android.Util.Log.Debug("ZXing.Mobile", "Barcode Found: " + result.Text);
ShutdownCamera();
callback(result);
return;
}
}
catch (ReaderException) { Android.Util.Log.Debug("ZXing.Mobile", "No barcode Found"); }
catch (Exception) { throw; }
camera.SetOneShotPreviewCallback (this);
}