#flutter
Вопрос:
Я экспериментирую с камерой flutter_camera. Я пытаюсь добавить переключатель камеры, как это:
CameraController? controller;
bool frontCamera = false;
@override
void initState() {
initCamera();
super.initState();
}
initCamera() {
if (controller?.value.isInitialized ?? false) {
controller!.dispose();
}
controller = CameraController(
cameras.firstWhere(
(element) => element.lensDirection == (frontCamera ? CameraLensDirection.front : CameraLensDirection.back),
),
ResolutionPreset.medium,
enableAudio: false);
controller!.initialize().then((value) {
setState(() {});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Camera Test")),
body: Column(
children: [
if (controller != null)
Container(
child: CameraPreview(controller!),
height: 400,
),
Row(
children: [
ElevatedButton(
onPressed: () {
frontCamera = !frontCamera;
initCamera();
},
child: Text("Switch"),
),
],
),
],
),
);
}
Когда первый initCamera
вызов работает должным образом и отображается предварительный просмотр моей камеры. Когда я нажимаю кнопку «Переключить», initCamera
вызывается метод, и CameraPreview перестраивается, но он просто отображает черный предварительный просмотр. У меня нет ошибок или полезного журнала отладки.
Есть какие-нибудь идеи?