Use the front-facing camera
By default, BlinkID uses the rear-facing camera. For kiosk-style applications where a tablet or similar device is mounted and the user holds their document up to the screen, configure the SDK to use the front-facing camera instead.
Set the front-facing camera
- Web (TS)
- Android (Kotlin)
- iOS (Swift)
- Flutter (Dart)
- React Native (TS)
This option is not supported when using the all-in-one
blinkid package.
Use the
camera-manager
package and build your own scanning flow using the lower-level API.
Pass preferredFacing: "front" when starting the video stream:
import { CameraManager } from "@microblink/camera-manager";
const cameraManager = new CameraManager();
await cameraManager.startCameraStream({
preferredFacing: "front",
});
See the camera selection example app for a complete integration example.
Pass CameraSettings with lensFacing set to CameraLensFacing.LensFacingFront:
BlinkIdCameraScanningScreen(
blinkIdSdk = blinkIdSdk,
cameraSettings = CameraSettings(
lensFacing = CameraLensFacing.LensFacingFront,
),
onScanningSuccess = { result ->
// use result
},
onScanningCanceled = { }
)
Pass ScanningUXSettings with preferredCameraPosition set to .front via the .uxSettings() modifier:
BlinkIDUXView(
analyzer: analyzer,
onScanCompleted: { resultState in
guard let result = resultState.scanningResult else { return }
// use result
}
)
.uxSettings(ScanningUXSettings(preferredCameraPosition: .front))
Pass BlinkIdScanningUxSettings with preferredCamera set to PreferredCamera.front as the blinkidScanningUxSettings argument:
import 'package:flutter/services.dart';
try {
final result = await blinkIdPlugin.performScan(
BlinkIdSdkSettings(licenseKey: licenseKey)..downloadResources = true,
BlinkIdSessionSettings(
scanningMode: ScanningMode.automatic,
scanningSettings: BlinkIdScanningSettings(
documentCaptureModule: DocumentCaptureModuleSettings(),
mrzModule: MrzModuleSettings(),
barcodeModule: BarcodeModuleSettings(),
vizModule: VizModuleSettings(),
),
),
blinkidScanningUxSettings:
BlinkIdScanningUxSettings(preferredCamera: PreferredCamera.front),
);
// use result
} on PlatformException catch (e) {
// handle error
}
Pass scanningUxSettings with preferredCamera set to 'front' to performScan:
const result = await performScan({
sdkSettings: { licenseKey, downloadResources: true },
sessionSettings: {
scanningMode: 'automatic',
scanningSettings: {
documentCaptureModule: {},
mrzModule: {},
barcodeModule: {},
vizModule: {},
},
},
scanningUxSettings: { preferredCamera: 'front' },
});