NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #448 most downloaded on pub.dev
A Flutter plugin for controlling the camera. Supports previewing the camera feed, capturing images and video, and streaming image buffers to Dart.
Last release 1 months ago
03 Sep 2026
Ships fairly regularly
a new release about every 4 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
156 releases · first in 2018
Adds setJpegImageQuality(int quality) (1–100) to the app-facing camera package, forwarding to the platform interface method.
Adds setJpegImageQuality(int quality) (1–100) to the app-facing camera package, forwarding to the platform interface method.
This PR is now scoped down to camera only. The platform interface and implementations already landed and published separately:
| Package | Version | Landed in |
|---|---|---|
camera_platform_interface |
2.13.0 | #11155 (split out) |
camera_platform_interface |
2.13.1 | #12123 — default implementation made a no-op |
camera_android_camerax |
0.7.4 | #11616 |
camera_avfoundation |
0.10.2 | #11616 |
| Package | Version |
|---|---|
camera |
0.12.0+2 → 0.12.1 |
CameraController.setJpegImageQuality, with 1–100 range validation and CameraException translation.camera_platform_interface: ^2.13.1, camera_android_camerax: ^0.7.4, camera_avfoundation: ^0.10.2. No dependency_overrides.UnimplementedError, so calling this is always safe. The dartdoc says the setting is best-effort and links to flutter/flutter#191790 for the current state of platform support (web and Windows are not implemented yet).Fixes flutter/flutter#183229
One column per quarter.
setJpegImageQuality for controlling JPEG compression quality.Adds support for video stabilization.
Makes Optional.of constructor const.
Optional.of constructor const.Fixes a crash where a CameraController could update its value after being disposed, throwing "A CameraController was used after being disposed".
CameraController could update its value after being disposed, throwing "A CameraController was used after being disposed".Updates minimum supported SDK version to Flutter 3.35/Dart 3.9.
Adds support to configure persistent recording on Android. See CameraController.startVideoRecording(enablePersistentRecording).
CameraController.startVideoRecording(enablePersistentRecording).Fixes delivering errors from onCameraError.
Fixes overflowed toggles in the camera example.
CameraLensType export.Updates examples to use the new RadioGroup API instead of deprecated Radio parameters.
Adds API support query for image streaming.
Breaking Change Changes the Android implementation of the camera plugin from camera_android to camera_android_camerax, which has better support for a…
camera_android
to camera_android_camerax, which has better support for a wider range of devices. The CameraX
implementation full feature parity with camera_android except for the limitations listed in
README.md. To continue using camera_android, follow these instructions.Updates minimum supported SDK version to Flutter 3.16/Dart 3.2.
README.md about allowing image streaming in the background on Android.Updates minimum supported SDK version to Flutter 3.19/Dart 3.3.
Adds support to control video fps and bitrate. See CameraController constructor.
CameraController constructor.Adds NV21 as an image streaming option for Android.
Removes obsolete null checks on non-nullable values.
Fixes unawaited_futures violations.
Migrates styleFrom usage in examples off of deprecated primary and onPrimary parameters.
styleFrom usage in examples off of deprecated primary and onPrimary parameters.Adds pub topics to package metadata.
Fixes bug where old camera resources were not disposed when switching between camera descriptions.
Updates minimum supported SDK version to Flutter 3.10/Dart 3.0.
package:quiver.Updates example app to use non-deprecated video_player method.
* Fixes new lint warnings.
Updates minimum required plugin_platform_interface version to 2.1.7.
Allows camera to be switched while video recording.
Adds back use of Optional type.
Updates links for the merge of flutter/plugins into flutter/packages.
Updates iOS minimum version in README.
Implements option to also stream when recording a video.
Updates code for stricter lint checks.
Remove usage of deprecated quiver Optional type.
Breaking Change Bumps default camera_web package version, which updates permission exception code from cameraPermission to CameraAccessDenied.
cameraPermission to CameraAccessDenied.cameraPermission to
CameraAccessDenied and AudioAccessDenied.Fixes avoid_redundant_argument_values lint warnings and minor typos.
Updates imports for prefer_relative_imports.
prefer_relative_imports.Updates code for no_leading_underscores_for_local_identifiers lint.
no_leading_underscores_for_local_identifiers lint.Removes usage of _ambiguate method in example.
_ambiguate method in example.Updates code for stricter lint checks.
Moves Android and iOS implementations to federated packages.
Ignores deprecation warnings for upcoming styleFrom button API changes.
Returns all the available cameras on iOS.
Moves streaming implementation to the platform interface package.
Adds audio access permission handling logic on iOS to fix an issue with prepareForVideoRecording not awaiting for the audio permission request result.
prepareForVideoRecording not awaiting for the audio permission request result.Adds camera access permission handling logic on iOS to fix a related crash when using the camera for the first time.
Suppresses warnings for pre-iOS-11 codepaths.
Add web support by endorsing package:camera_web.
package:camera_web.Fixed Android implementation throwing IllegalStateException when switching to a different activity.
Refactor unit test on iOS to make it compatible with new restrictions in Xcode 13 which only supports the use of the XCUIDevice in Xcode UI tests.
XCUIDevice in Xcode UI tests.Fix registerTexture and result being called on background thread on iOS.
Remove usages of deprecated Android API CamcorderProfile.
CamcorderProfile.Fixes bug where calling a method after the camera was closed resulted in a Java IllegalStateException exception.
IllegalStateException exception.Fixes a crash in iOS when using image stream due to calling Flutter engine API on non-main thread.
Fixes a crash in iOS when passing null queue pointer into AVFoundation API due to race condition.
Fixes a bug where ImageFormatGroup was ignored in startImageStream on iOS.
startImageStream on iOS.iOS performance improvement by moving sample buffer handling from the main queue to a background session queue.
iOS performance improvement by moving file writing from the main queue to a background IO queue.
Manages iOS camera's orientation-related states on a background queue to prevent potential race conditions.
Skips unnecessary AppDelegate setup for unit tests on iOS.
Updates iOS camera's photo capture delegate reference on a background queue to prevent potential race conditions, and some related internal code clean
Restores compatibility with Flutter 2.5 and 2.8.
Uses dispatch queue for pixel buffer synchronization on iOS.
Your coding agent can read these notes before it upgrades. Set up the MCP server →