The Android implementation of camera built with the CameraX library.

Note: If any of the limitations prevent you from using using camera_android_camerax or if you run into any problems, please report report these issues under flutter/flutter with [camerax] in the title. You may also opt back into the camera_android implementation if you need.


As of camera: ^0.11.0, this package is endorsed, which means you can simply use camera normally. This package will be automatically be included in your app when you do, so you do not need to add it to your pubspec.yaml.

However, if you import this package to use any of its APIs directly, you should add it to your pubspec.yaml as usual.


Concurrent preview display, video recording, image capture, and image streaming

The CameraX plugin only supports the concurrent camera use cases supported by Camerax; see their documentation for more information. To avoid the usage of unsupported concurrent use cases, the plugin behaves according to the following:

  • If the preview is paused (via pausePreview), concurrent video recording and image capture and/or image streaming (via startVideoCapturing(cameraId, VideoCaptureOptions(streamCallback:...))) is supported.
  • If the preview is not paused
    • and the camera device is at least supported hardware LIMITED, then concurrent image capture and video recording is supported.
    • and the camera device is at least supported hardware LEVEL_3, then concurrent video recording and image streaming is supported, but concurrent video recording, image streaming, and image capture is not supported.

setDescriptionWhileRecording is unimplemented Issue #148013

setDescriptionWhileRecording, used to switch cameras while recording video, is currently unimplemented due to this not currently being supported by CameraX.

240p resolution configuration for video recording

240p resolution configuration for video recording is unsupported by CameraX, and thus, the plugin will fall back to target 480p (ResolutionPreset.medium) if configured with ResolutionPreset.low.

Setting maximum duration and stream options for video capture

Calling startVideoCapturing with VideoCaptureOptions configured with maxVideoDuration and streamOptions is currently unsupported do to the limitations of the CameraX library and the platform interface, respectively, and thus, those parameters will silently be ignored.


For more information on contributing to this plugin, see