简体   繁体   English

当应用程序进入后台时,Flutter CamerPlugin“相机预览”冻结

[英]Flutter CamerPlugin “camera preview” freezed when app goes to background

Hi iam using flutter cameraPreview to capture photo, the camera preview works fine but when the camera screen goes to background, while on resumed on that screen the camera screen is frezzed, cant able to view cameraPrview onResume.嗨,我使用 flutter 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.
            }
          },
        ),],),);

controller is disposed prpoperly. controller 配置正确。

I want to know why camera preview is disposed while pause.我想知道为什么暂停时会处理相机预览。

Issue is solved by initialised cameraPreview onResume问题已通过初始化的 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"
    }
  }

On resuming to the page, _controller.initialize will call, so that cameraPreview will works fine.恢复到页面时,_controller.initialize 将调用,以便 cameraPreview 可以正常工作。

This is due to cameraPreview runs for long on onPause, it will be disposed..onAndroid i think so..这是由于cameraPreview在onPause上运行了很长时间,它会被释放..onAndroid我想是这样..

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM