NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #492 most downloaded on pub.dev
Android implementation of the camera plugin using the CameraX library.
Last release 7 days ago
30 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
124 releases · first in 2023
This PR introduces the ability to save videos to custom locations, taking into account the limitations and behavior of each platform.
This PR introduces the ability to save videos to custom locations, taking into account the limitations and behavior of each platform.
Due to platform-specific security restrictions and limitations:
/storage/emulated/0/Download/video.mp4 without issues.On My iPhone -> Camera Example -> Movies.Closes flutter/flutter#91680
Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.
One column per quarter.
[camera_android_camerax] Fix exposure offset setting error thrown whe…
[camera_android_camerax] Fix exposure offset setting error thrown whe…
Updates pigeon dev_dependency to ^27.3.2 for analyzer 14 compatibility.
Adds setJpegImageQuality for controlling JPEG compression quality.
setJpegImageQuality for controlling JPEG compression quality.Fixes a StateError ("Bad state: No element") in setFocusMode(FocusMode.auto) when the current focus and metering action has no auto-focus points.
StateError ("Bad state: No element") in setFocusMode(FocusMode.auto)
when the current focus and metering action has no auto-focus points.Bumps cameraxVersion from 1.6.0 to 1.6.1.
Updates ResolutionPreset.max to prefer higher resolution over capture rate for CameraX ResolutionSelector use cases on Android.
ResolutionPreset.max to prefer higher resolution over capture rate
for CameraX ResolutionSelector use cases on Android.Fix NullPointerException when disposing camera during active video recording.
NullPointerException when disposing camera during active video recording.[camera_android_camerax] Fix leaked thread per capture in `takePictur…
[camera_android_camerax] Fix leaked thread per capture in `takePictur…
takePicture result callback on the main
executor.[camera_android_camerax] Add explicit concurrent-futures dependency (…
[camera_android_camerax] Add explicit concurrent-futures dependency (…
androidx.concurrent:concurrent-futures:1.2.0 dependency to fix
compileDebugJavaWithJavac failing with "class file for
androidx.concurrent.futures.CallbackToFutureAdapter not found" when
camera-core's Jspecify type annotations are resolved during compilation.[camera_android_camerax] Bump cameraxVersion to 1.6.2, remove concurr…
[camera_android_camerax] Bump cameraxVersion to 1.6.2, remove concurr…
androidx.concurrent:concurrent-futures dependency
workaround, as camera-core 1.6.2 includes an
upstream fix that makes it unnecessary.Fixes videoBitrate configuration being ignored during video recording.
videoBitrate configuration being ignored during video recording.Bumps camerax_version from 1.5.3 to 1.6.0.
Migrates to Built-in Kotlin to support AGP 9.
Removes outdated restrictions against concurrent camera use cases.
Updates build files from Groovy to Kotlin.
Fixes dartdoc comments that accidentally used HTML.
* Adds video stabilization.
Updates example to demonstrate correct exception handling for async return statements, ensuring exceptions thrown during return within try blocks are
Bump camerax_version from 1.5.2 to 1.5.3.
Modifies lens direction logic to request the value from CameraX directly versus manual detection.
Adds more descriptive error to camera error stream when image capture fails.
Changes availableCameras to get the camera name from Camera2CameraInfo.getCameraId.
availableCameras to get the camera name from Camera2CameraInfo.getCameraId.Removes internal native library Dart proxy.
Updates pigeon generation to prevent crash when objects call to Dart after a hot restart.
Adds support for MediaSettings.fps for camera preview, image streaming, and video recording.
MediaSettings.fps for camera preview, image streaming, and video recording.Bumps kotlin_version to 2.2.21.
Change plugin to assume mp4 format for capture videos.
Fixes crash in DeviceOrientationManager caused by UnsupportedOperationException when getDisplay() is called on a null or destroyed Activity during rot
DeviceOrientationManager caused by UnsupportedOperationException when getDisplay() is called on a null or destroyed Activity during rotation.* Updates to Pigeon 26.
Bumps com.android.tools.build:gradle from 8.12.1 to 8.13.1.
Allows for video recording without audio when permission RECORD_AUDIO is denied.
Converts NV21-compatible streamed images to NV21 when requested. In doing so, this plugin should now be compatible with google_ml_kit_flutter.
Resolves Gradle 9 deprecations.
Updates Java compatibility version to 17 and minimum supported SDK version to Flutter 3.35/Dart 3.9.
Bumps camerax_version from 1.5.0 to 1.5.1.
Updates examples to use the new RadioGroup API instead of deprecated Radio parameters.
Fixes IllegalArgumentException that could occur during image streaming when using NV21.
IllegalArgumentException that could occur during image streaming when using NV21.Implements setDescriptionWhileRecording.
setDescriptionWhileRecording.Implements NV21 support for image streaming.
Updates to stable version of androidx.camera 1.5.
androidx.camera 1.5.Bumps com.android.tools.build:gradle to 8.12.1 and kotlin_version to 2.2.10.
Bumps com.google.guava:guava from 33.4.0-android to 33.4.8-android.
Changes target rotation of captured images to current default display rotation to fix captured photo orientation to upright.
Fixes incorrect camera switching by selecting a camera via its CameraInfo.
Adds support for the MediaSettings.enableAudio setting, which determines whether or not audio is recorded during video recording.
MediaSettings.enableAudio setting, which determines whether or not audio is
recorded during video recording.* Makes Java style improvements.
Fixes premature garbage collection of native objects when app is under memory pressure.
Fixes incorrect camera preview mirroring for front cameras of devices using the Impeller backend.
Replaces BroadcastReceiver usage with an OrientationEventListener to detect changes in device orientation to fix issue where some devices do not repor
BroadcastReceiver usage with an OrientationEventListener to detect changes in device
orientation to fix issue where some devices do not report changes in device configuration if it
is rotated between the same sort of orientation (landscape/portrait).Replaces deprecated onSurfaceDestroyed with onSurfaceCleanup.
onSurfaceDestroyed with onSurfaceCleanup.Fixes incorrect camera preview rotation for landscape-oriented devices.
onDeviceOrientationChanged was not triggering with an initial orientation
after calling createCameraWithSettings.Updates internal API wrapper to use ProxyApis.
Ensures DeviceOrientationManager is stopped on dispose.
Updates pigeon generated code to fix ImplicitSamInstance and SyntheticAccessor Kotlin lint warnings.
ImplicitSamInstance and SyntheticAccessor Kotlin lint
warnings.Fixes incorrect camera preview rotation.
Updates compileSdk 34 to flutter.compileSdkVersion.
Adds API support query for image streaming.
Suppresses deprecation and removal warnings for TextureRegistry.SurfaceProducer.onSurfaceDestroyed.
TextureRegistry.SurfaceProducer.onSurfaceDestroyed.Replaces deprecated Android embedder APIs (onSurfaceCreated -> onSurfaceAvailable).
onSurfaceCreated -> onSurfaceAvailable).Your coding agent can read these notes before it upgrades. Set up the MCP server →