Flutter-Android 如何在应用程序处于 foreground/background 时使用相机

Flutter-Android how to use the camera while the app is in foreground/background

是否可以在应用处于前台或后台时使用相机? 我尝试使用这两个包 flutter_foreground_task and flutter_background_service 但是一旦我启动相机流 Unhandled Exception: MissingPluginException(No implementation found for method availableCameras on channel plugins.flutter.io/camera).

我总是收到此错误消息
class FirstTaskHandler extends TaskHandler {

  void initCamera() async {
    final description = await availableCameras().then(
      (cameras) => cameras.firstWhere(
        (camera) => camera.lensDirection == CameraLensDirection.front,
      ),
    );
    final _cameraController = CameraController(
      description,
      ResolutionPreset.low,
      enableAudio: false,
    );
    await _cameraController.initialize();
    await Future.delayed(const Duration(milliseconds: 500));
    _cameraController.startImageStream((img) async {
      log("Image captures: ${img.width} x ${img.height} -- ${img.format.raw}");
    });
  }

  @override
  Future<void> onStart(DateTime timestamp, SendPort? sendPort) async {
    initCamera();
  }

  @override
  Future<void> onEvent(DateTime timestamp, SendPort? sendPort) async {  }

  @override
  Future<void> onDestroy(DateTime timestamp) async {

  }

  @override
  void onButtonPressed(String id) {

  }
}

我通过编辑相机插件并在应用程序处于 foreground/background 时使 Livestream 方法起作用来解决这个问题。 这是编辑插件 edited-flutter-camera-plugin 的 link,请注意,此版本在某些功能上可能会崩溃,因为我只是编辑了一些文件以使其符合我的目的,即让 Livestream 方法在前台运行