onNewCameraSelected method
Future<void>
onNewCameraSelected(
)
Implementation
Future<void> onNewCameraSelected() async {
// final CameraController? oldController = photoController;
// if (oldController != null) {
// photoController = null;
// await oldController.dispose();
// }
late List<CameraDescription> cameras = <CameraDescription>[]; //TODO
photoController = CameraController(cameras[0], ResolutionPreset.medium, enableAudio: true);
photoController!.addListener(() {
if (mounted) {
setState(() {});
}
if (photoController!.value.hasError) {
showInSnackBar('Camera error ${photoController!.value.errorDescription}');
}
});
try {
await photoController!.initialize();
await Future.wait(<Future<Object?>>[
...!kIsWeb ? <Future<Object?>>[photoController!.getMinExposureOffset().then((double value) => _minAvailableExposureOffset = value), photoController!.getMaxExposureOffset().then((double value) => _maxAvailableExposureOffset = value)] : <Future<Object?>>[],
photoController!.getMaxZoomLevel().then((double value) => _maxAvailableZoom = value),
photoController!.getMinZoomLevel().then((double value) => _minAvailableZoom = value),
]);
} on CameraException catch (e) {
switch (e.code) {
case 'CameraAccessDenied':
showInSnackBar('Non hai gli accessi alla telecamera.');
break;
case 'CameraAccessDeniedWithoutPrompt':
// iOS only
showInSnackBar("Perfavore vai nelle impostazioni dell'app e dai gli accessi alla Telecamera.");
break;
case 'CameraAccessRestricted':
// iOS only
showInSnackBar('Accesso riservato per la Telecamera');
break;
case 'AudioAccessDenied':
showInSnackBar("Non hai gli accessi per registrare l'audio");
break;
case 'AudioAccessDeniedWithoutPrompt':
// iOS only
showInSnackBar("Perfavore vai nelle impostazioni dell'app e dai gli accessi all'Audio.");
break;
case 'AudioAccessRestricted':
// iOS only
showInSnackBar("Accesso riservato per la registrazione Audio");
break;
default:
_showCameraException(e);
break;
}
}
if (mounted) {
setState(() {});
}
}