Flutter CameraPreview зависает, когда приложение переходит в фоновый режим - PullRequest
0 голосов
/ 19 сентября 2019

Привет, используя флаттер cameraPreview для захвата фотографии, предварительный просмотр камеры работает нормально, но когда экран камеры переходит в фоновый режим, а при возобновлении на этом экране экран камеры зависает, невозможно просмотреть cameraPrview onResume.

mycode:

Future<void> _initializeCamera() async {
final cameras = await availableCameras();
final firstCamera = cameras.first;
_controller = CameraController(firstCamera, ResolutionPreset.high);
_initializeControllerFuture = _controller.initialize();
if (!mounted) {
  return;
}
setState(() {
  isCameraReady = true;
});
}


@override
  Widget build(BuildContext context) {
    return Scaffold(
      key: _scaffoldKey,
      body: Stack(children: <Widget>[
        FutureBuilder<void>(
          future: _initializeControllerFuture,
          builder: (context, snapshot) {
            if (snapshot.connectionState == ConnectionState.done) {
              // If the Future is complete, display the preview.
              return CameraPreview(_controller);
            } else {
              return Center(
                  child:
                      CircularProgressIndicator()); // Otherwise, display a loading indicator.
            }
          },
        ),],),);

контроллер расположен правильно.

Я хочу знать, почему предварительный просмотр камеры выполняется во время паузы.

1 Ответ

0 голосов
/ 20 сентября 2019

Проблема решена инициализированным cameraPreview onResume

 @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    if (state == AppLifecycleState.resumed) {
      _controller != null
          ? _initializeControllerFuture = _controller.initialize()
          : null; //on pause camera disposed so we need call again "issue is only for android"
    }
  }

При возврате на страницу будет вызываться _controller.initialize, так что cameraPreview будет работать нормально.

Это связано с запуском cameraPreview.долго на onPause он будет утилизирован .. на андроиде я так думаю ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...