private bool InitScanner(BarcodeScanner.BarcodeFormat barcodeType) { device = AVCaptureDevice.GetDefaultDevice(AVMediaType.Video); if (device == null) { return(false); } input = AVCaptureDeviceInput.FromDevice(device); if (input.Device.IsFocusModeSupported(AVCaptureFocusMode.ContinuousAutoFocus)) { input.Device.LockForConfiguration(out NSError err); input.Device.FocusMode = AVCaptureFocusMode.ContinuousAutoFocus; input.Device.UnlockForConfiguration(); } if (input == null) { return(false); } output = new AVCaptureMetadataOutput(); output.SetDelegate(this, DispatchQueue.MainQueue); session = new AVCaptureSession(); session.AddInput(input); session.AddOutput(output); output.MetadataObjectTypes = GetBarcodeFormat(barcodeType); captureVideoPreviewLayer = AVCaptureVideoPreviewLayer.FromSession(session); captureVideoPreviewLayer.Frame = CGRect.Empty; captureVideoPreviewLayer.VideoGravity = AVLayerVideoGravity.ResizeAspectFill; captureVideoPreviewLayer.Connection.VideoOrientation = GetDeviceOrientation(); return(true); }
private AVMetadataObjectType GetBarcodeFormat(BarcodeScanner.BarcodeFormat barcodeType) { switch (barcodeType) { case BarcodeScanner.BarcodeFormat.DataMatrix: return(AVMetadataObjectType.DataMatrixCode); case BarcodeScanner.BarcodeFormat.QrCode: return(AVMetadataObjectType.QRCode); case BarcodeScanner.BarcodeFormat.Pdf417: return(AVMetadataObjectType.PDF417Code); case BarcodeScanner.BarcodeFormat.Code128: return(AVMetadataObjectType.Code128Code); case BarcodeScanner.BarcodeFormat.Code39: return(AVMetadataObjectType.Code39Code); case BarcodeScanner.BarcodeFormat.Code93: return(AVMetadataObjectType.Code93Code); case BarcodeScanner.BarcodeFormat.Ean13: return(AVMetadataObjectType.EAN13Code); case BarcodeScanner.BarcodeFormat.Ean8: return(AVMetadataObjectType.EAN8Code); default: return(AVMetadataObjectType.DataMatrixCode); } }
private BarcodeFormat GetBarcodeFormat(BarcodeScanner.BarcodeFormat barcodeType) { switch (barcodeType) { case BarcodeScanner.BarcodeFormat.DataMatrix: return(BarcodeFormat.DataMatrix); case BarcodeScanner.BarcodeFormat.QrCode: return(BarcodeFormat.QrCode); case BarcodeScanner.BarcodeFormat.Pdf417: return(BarcodeFormat.Pdf417); case BarcodeScanner.BarcodeFormat.Code128: return(BarcodeFormat.Code128); case BarcodeScanner.BarcodeFormat.Code39: return(BarcodeFormat.Code39); case BarcodeScanner.BarcodeFormat.Code93: return(BarcodeFormat.Code93); case BarcodeScanner.BarcodeFormat.Ean13: return(BarcodeFormat.Ean13); case BarcodeScanner.BarcodeFormat.Ean8: return(BarcodeFormat.Ean8); default: return(BarcodeFormat.DataMatrix); } }