camera_android_camerax

An Android implementation of camera that uses the CameraX library.

Note: This implementation will become the default implementation of camera on Android by May 2024, so we strongly encourage you to opt into it by using the instructions below. If any of the limitations prevent you from using camera_android_camerax or if you run into any problems, please report these issues under flutter/flutter with [camerax] in the title.

Usage

To use this plugin instead of camera_android, run

$ flutter pub add camera_android_camerax

from your project's root directory.

Limitations

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.

240p resolution configuration for video recording

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

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.

Contributing

For more information on contributing to this plugin, see CONTRIBUTING.md.