captureMultiple method
Future<void>
captureMultiple({
- required List<
MediaCaptureConfig> captureConfigs(- ImageCaptureConfig defaultConfig
- required void onPictureTaken(
- int index,
- MediaCaptureConfig captureConfig,
- InspectionMedia<
MediaCaptureConfig> data
- bool onCaptureFailure(
- int failureAtIndex,
- MediaCaptureConfig captureConfig,
- ({Object? exception, StackTrace? stackTrace}) exceptionInfo
Implementation
Future<void> captureMultiple({
required List<MediaCaptureConfig> Function(ImageCaptureConfig defaultConfig)
captureConfigs,
required void Function(
int index,
MediaCaptureConfig captureConfig,
InspectionMedia data,
) onPictureTaken,
/// Return true to continue the flow, false to exit it.
bool Function(
int failureAtIndex,
MediaCaptureConfig captureConfig,
({
Object? exception,
StackTrace? stackTrace,
}) exceptionInfo,
)? onCaptureFailure,
}) async {
final cameras = await InspectionCamera.initCameras();
print('step 3');
final configs = captureConfigs.call(defaultCaptureConfig);
print('step 4');
final cameraConfig = await CameraConfig.generate(
captureConfig: configs.first,
cameras: cameras,
resolutionPreset: defaultCaptureConfig.resolutionPreset,
onComplete: navigationHandler.closeScreen,
);
final cameraController = cameraConfig.cameraController;
print('step 5');
for (var i = 0; i < configs.length; i++) {
final config = configs[i];
print("Unique id number for current config ${config.uniqueIdNumber}");
;
if (cameraController.description.lensDirection !=
config.defaultCameraLensDirection) {
await cameraController.setDescription(
cameras.getCamera(
config.defaultCameraLensDirection,
returnDefaultOnNoMatch: true,
),
);
}
print('step 6');
try {
final image = await _takeMedia(
cameraConfig: cameraConfig,
captureConfig: config,
);
// if(kIsWeb) {
// await cameraController.dispose();
// }
onPictureTaken.call(
i,
config,
image,
);
} catch (e, s) {
if (!(onCaptureFailure
?.call(i, config, (exception: e, stackTrace: s)) ??
true)) {
break;
}
}
}
// if(!kIsWeb) {
await cameraController.dispose();
// }
}