Камера Flutter: Предварительный просмотр черного цвета после переключения камер/повторной инициализации контроллера камеры

#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 перестраивается, но он просто отображает черный предварительный просмотр. У меня нет ошибок или полезного журнала отладки.

Есть какие-нибудь идеи?