createCamera method
Future<CameraController?>
createCamera(
{ - CameraDescription? description,
})
Implementation
Future<CameraController?> createCamera({CameraDescription? description}) async {
if (value.error != null) {
value = value.copyWith();
}
var cameraDescription = description ?? value.cameraDescription;
var cameras = value.cameras;
// Fetch camera descriptions if description is not available
if (cameraDescription == null) {
cameras = await availableCameras();
if (cameras.isNotEmpty) {
cameraDescription = cameras[0];
} else {
cameraDescription = const CameraDescription(
name: 'Simulator',
lensDirection: CameraLensDirection.front,
sensorOrientation: 0,
);
}
}
// create camera controller
_cameraController = CameraController(
cameraDescription,
GAPManager.cameraConfig.resolutionPreset,
imageFormatGroup: GAPManager.cameraConfig.imageFormatGroup,
enableAudio: false,
);
_cameraController!.addListener(() {
if (_cameraController?.value.hasError == true) {
value = value.copyWith(error: CameraExceptions.createCamera);
return;
}
});
return await _safeCall(
checkHasCamera: false,
callback: () async {
await _cameraController!.initialize();
value = value.copyWith(cameraDescription: cameraDescription, cameras: cameras);
if (_cameraController!.description.lensDirection == CameraLensDirection.back) {
unawaited(_cameraController!.setFlashMode(value.flashMode));
}
},
customException: CameraExceptions.createCamera,
);
}