private void updateCameraRunningState(PropertyChangedEventArgs e) { if (e.PropertyName == BarcodeScanner.PreviewActiveProperty.PropertyName) { if (barcodeScanner.PreviewActive) { startSession(); barcodeScanner.OnPreviewActivated(); } else { stopSession(); barcodeScanner.OnPreviewDeactivated(); } } if (e.PropertyName == VisualElement.IsEnabledProperty.PropertyName) { if (barcodeScanner.IsEnabled) { startSession(); barcodeScanner.OnCameraOpened(); } else { stopSession(); barcodeScanner.OnCameraReleased(); } } }
protected override void OnElementChanged(ElementChangedEventArgs <View> e) { base.OnElementChanged(e); barcodeScanner = (BarcodeScanner)Element; if (barcodeScanner == null) { return; } if (!initScanner()) { return; } view = new UIView(CGRect.Empty); view.BackgroundColor = UIColor.Gray; view.Layer.AddSublayer(captureVideoPreviewLayer); startSession(); barcodeScanner.OnCameraOpened(); barcodeScanner.OnPreviewActivated(); SetNativeControl(view); }
public void StartPreview(ISurfaceHolder holder) { try { if (!opened) { OpenCamera(); return; } if (!previewActive) { cameraSource?.StartPreview(holder); if (cameraSource.AutoFocusModeEnabled()) { cameraSource.AutoFocus(autoFocus); } previewActive = true; } renderer.OnPreviewActivated(); } catch (Exception ex) { this.Debug("Unable to start preview."); this.Debug(ex.ToString()); } }