record
Audio recorder from microphone to file or stream with multiple codecs, bit rate and sampling rate options.
7.1.1
1000K downloads/mo
#79 most downloaded on pub.dev
llfbandit/record
What this package is like to depend on
Last release 1 months ago
29 Jun 2026
Release timing varies
gaps range from 8 days to 5 months
Nearly every release is documented
notes for 50 of 50 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
57 releases · first in 2020
6 releases in the last 12 months
see the full history below
Release timeline
57 releases · Jun 2020 to Jun 2026Releases
latest 57-
7.1.129 Jun 2026Release notes
Open source →- fix(ios): Guard ios specific calls to avoid "Recorder has not yet been created..." exception.
-
7.1.010 Jun 2026Release notes
Open source →This release marks the end of a long wait, finally completing developments that had been on hold for too long, resulting in countless fixes.
Notables changes:
- No more fuzzy or unknown changes from requested
RecordConfig, you can retrieve the effectiveRecordConfigfromonConfigChangedcallback. Native platforms now eagerly clamp to device and codec capabilities. While not bullet proof, there's no more surprises. InputDevicenow provides preferred samples rates and type (sco, builtIn, etc.).- AAC encoding from Android now provides a stricter output. iOS should now be able to read those files.
Changelog:
- feat: Improve InputDevice description with sample rates and type.
- fix: codec/device caps and surface
onConfigChangedto dart side. - fix: Handles AudioRecorder initialization error.
- fix: Semaphore issues.
- fix: Amplitude interval change not taken into account.
- fix: Amplitude stream potential StateError.
- fix: Record stream doesn't propagate errors from platform.
- fix: Nullify subscriptions when disposing.
- chore: Add tests.
- chore: Updates example project.
- No more fuzzy or unknown changes from requested
-
7.0.026 May 2026Release notes
Open source →- chore: Updates minimum supported SDK version to Flutter 3.44/Dart 3.12.
- Android:
- chore: Breaking change Remove background recording service. See docs.
- chore: Move to AGP 9.x.
- chore: Move to Kotlin Gradle DSL.
- iOS:
- fix: Respect
shouldResumesystem flag on audio interruption and don't stop on resume failure. - chore: Breaking change Remove
manageAudioSessiondeprecated config property. - chore: Completes Swift Package Manager integration.
- fix: Respect
- macOS:
- chore: Completes Swift Package Manager integration.
- web:
- feat: JS assets are now web platform-specific assets. No more js files in other platform builds.
-
6.2.122 May 2026Release notes
Open source →This version is the last before v7 which will raise SDK versions to Flutter 3.44/Dart 3.12.
- fix: Stop requesting for amplitude updates when recording is paused or stopped from native side.
- chore: Code cleanup.
- chore: Remove uuid package dependency.
- chore: Updated transitive dependencies. See there for all related changes to dedicated platforms.
- Android:
- fix: Potential
IndexOutOfBoundsExceptionfor AAC ADTS streaming. - chore: Many code improvements and cleanups.
- chore: Deprecate background Android service (will be removed in v7).
- fix: Potential
- iOS:
- feat: Add
allowHapticsAndSystemSoundsDuringRecordingiOS option. - fix: Fuzzy events firing for recording states.
- fix: AVAudioPCMBuffer frame capacity calculation.
- fix: Stay away from Flutter UI thread.
- fix: SPM description.
- chore: Code cleanup.
- chore: Update example project.
- feat: Add
- macOS:
- fix: Stay away from Flutter UI thread.
- fix: SPM description.
- chore: Code cleanup.
- Linux:
- fix: Overriding the locale of
pactlcommand for consistent parsing.
- fix: Overriding the locale of
-
6.2.030 Jan 2026Release notes
Open source →- feat: Add
requestparameter tohasPermission()method to check permission status without requesting. - feat: Improve
convertBytesToInt16to allow pre-filled bytes array. - feat(iOS/macOS): Add AAC/ADTS streaming.
- fix(Android/iOS):
AudioInterruptionModenot pausing or resuming.
- feat: Add
-
6.1.203 Oct 2025Release notes
Open source →- chore: Updated transitive dependencies.
- chore: Update README.md & bg_recording.md.
-
6.1.121 Aug 2025 -
6.1.015 Aug 2025Release notes
Open source →- feat: Allow background recording on Android & iOS.
- feat: Add iOS specific methods for
AVAudioSession. - feat: Add AudioInterruptionMode to
RecordConfig. - feat: Add stream buffer size option.
- feat(Linux): Implement amplitude (dBFS).
- fix(Android): malformed AAC.
- chore: Updated transitive dependencies.
- chore: Update minimum supported SDK version to Flutter 3.24.0/Dart 3.5.0.
- chore(Android): Update kotlin to 2.2.0 and AGP to 8.6.1, so Gradle 8.7+ is required.
-
6.0.024 Mar 2025Release notes
Open source →- feat: Make all streams as broadcast streams.
- chore: Split iOS & macOS platforms.
- chore: Replace
fmediawithparecord&ffmpeg. - chore: Update README.md.
-
5.2.120 Feb 2025Release notes
Open source →- fix: Properly cancel platform streams before disposing others resources.
- chore: Updates minimum supported SDK version to Flutter 3.22/Dart 3.4.
-
5.2.002 Nov 2024Release notes
Open source →- chore: Updated transitive dependencies.
- chore: Add some more documentation.
-
5.1.225 Jun 2024 -
5.1.130 May 2024 -
5.1.021 May 2024 -
5.0.524 Mar 2024Release notes
Open source →- fix: Expose cancel method to stop and discard the recording.
- feat: Improve convertBytesToInt16 method by exposing endian parameter.
-
5.0.421 Dec 2023Release notes
Open source →- fix: Regression on creation sequence when disposing
AudioRecorderwithout using it.
- fix: Regression on creation sequence when disposing
-
5.0.320 Dec 2023Release notes
Open source →- fix: Regression on creation sequence when disposing
AudioRecorderwithout using it.
- fix: Regression on creation sequence when disposing
-
5.0.217 Dec 2023 -
5.0.114 Oct 2023 -
5.0.014 Oct 2023Release notes
Open source →-
Chore:
- Massively reworked platform implementations.
- Android now uses MediaCodec. Package is now written with kotlin (well...).
- iOS, macOS code now shares almost the same codebase. Unified under record_darwin package.
- Windows now uses MediaFoundation shipped with all 10 & 11 versions (no more fmedia executable, yeah! Even if do appreciate the work of stsaz).
-
Features:
- feat: Add multiple instance support.
- feat: Add PCM streaming feature & AAC on Android only.
- feat: Add auto gain control, noise suppressor and echo cancellation where available.
- feat: Add amplitude on web (Thanks to youssefali424).
- feat: Add best effort to adjust sample and bit rates to supported values (Android, iOS, macOS).
- feat: Add
cancel()method to stop and remove file if any.
-
Fix:
- iOS: Should pause/resume recording when interrupted by the system.
- web: Add duration metadata to created blob (Thanks to youssefali424).
-
Breaking changes:
- BREAK:
Recordhas been renamed toAudioRecorderto avoid confusion with dart v3. - BREAK: path is now required on all IO platforms. Set an empty String on web platform. There no more temp file generation.
- BREAK:
startandstartStreammethod parameters are now wrapped inRecordConfigobject. - BREAK:
samplingRatehas been renamed tosampleRate. - BREAK: vorbis support has been removed. Too few underlying support.
- BREAK:
-
-
5.0.0-beta.313 Sep 2023 pre-release -
5.0.0-beta.3+102 Oct 2023 pre-releaseRelease notes
Open source →- fix: Amplitude timer is not restarted for subsequent recordings.
- chore: Allow UUID v3 & V4.
-
5.0.0-beta.227 Jun 2023 pre-releaseRelease notes
Open source →- chore: remove
pcm8bit. Virtually still available since we have pcm 16 bits. - chore: throw exception when encoder is not supported.
- fix(web): Multiple issues on web platform.
- fix: Other minor fixes.
- feat(web): Add WAVE encoder support (16 bits).
- feat: add utility method
convertBytesToInt16to convert Uint8List to signed int 16 bits.
- chore: remove
-
5.0.0-beta.105 Jun 2023 pre-releaseRelease notes
Open source →Testers needed to reach release !
-
Chore:
- Massively reworked platform implementations.
- Android now uses MediaCodec. Package is now written with kotlin (well...).
- iOS, macOS code now shares almost the same codebase. Unified under record_darwin package.
- Windows now uses MediaFoundation shipped with all 10 & 11 versions (no more fmedia executable, yeah! Even if do appreciate the work of stsaz).
-
Features:
- feat: Add multiple instance support.
- feat: Add PCM streaming feature & AAC on Android only (for now).
- feat: Add auto gain control, noise suppressor and echo cancellation where available.
- feat: Add amplitude on web (Thanks to youssefali424).
- feat: Add best effort to adjust sample and bit rates to supported values (Android, iOS, macOS).
- feat: Add
cancel()method to stop and remove file if any.
-
Fix:
- iOS: Should pause/resume recording when interrupted by the system.
- web: Add duration metadata to created blob (Thanks to youssefali424).
-
Breaking changes:
- BREAK:
Recordhas been renamed toAudioRecorderto avoid confusion with dart v3. - BREAK: path is now required on all IO platforms. Set an empty String on web platform. There no more temp file generation.
- BREAK:
startandstartStreammethod parameters are now wrapped inRecordConfigobject. - BREAK:
samplingRatehas been renamed tosampleRate. - BREAK: vorbis support has been removed. Too few underlying support.
- BREAK:
-
-
4.4.427 Dec 2022Release notes
Open source →- chore: Update linter rules.
- chore: Update dependencies.
- chore: Update readme.md.
-
4.4.329 Oct 2022Release notes
Open source →- fix: Deprecation warning on Android.
- fix: Android build issue.
- fix: Don't report Android exception when stop is called just after start.
-
4.4.224 Oct 2022 -
4.4.103 Oct 2022 -
4.4.019 Aug 2022Release notes
Open source →- feat:
onStateChanged()stream is now filled by platform implementations.- This allows more reliable updated record states.
- fix:
onAmplitudeChangedcould result in computation error. - core: Updated flutter to min 2.8.1.
- core: Updated example to use above streams.
- feat:
-
4.3.309 Aug 2022 -
4.3.226 Jul 2022Release notes
Open source →- fix: Android
hasPermission()method does not throw exception anymore when permission has been denied.
- fix: Android
-
4.3.108 Jul 2022 -
4.3.007 Jul 2022Release notes
Open source →- feat: Add input devices listing and selection (linux / windows / macOS / web).
- feat: Add number of channels.
- core: fmedia updated to 1.28 (linux / windows).
- feat: Add recorder state stream.
- feat: Add recorder amplitude stream.
- core: Update dependencies.
- fix: Add error details on record start (ios).
- fix: WAV recording header, resume-pause (Android).
-
4.2.0-dev.304 Jul 2022 pre-releaseNothing published for this version
-
4.2.0-dev.201 Jul 2022 pre-releaseNothing published for this version
-
4.2.0-beta.124 Jun 2022 pre-releaseNothing published for this version
-
4.1.110 May 2022 -
4.1.010 May 2022 -
4.0.209 May 2022Release notes
Open source →- core: Replace SFML by fmedia.
- feat: More encoders and features on Windows.
- fix: Windows build by removing SFML.
- core: README.md updates.
-
4.0.109 May 2022Release notes
Open source →- core: OPUS and vorbis formats are now in OGG containers (instead of MP4).
- core: Relax dependencies version constraints.
- core: README.md updates.
-
4.0.006 May 2022Release notes
Open source →This contains very small breaking changes. See below.
- core: BREAK:
AudioEncodervalues are now in lowerCamelCase. - core: BREAK? or fix:
start#samplingRateis now an integer. - core: BREAK:
AudioEncoder.aacis nowAudioEncoder.aacLc. - core: Android minimum API level is now 19.
- core: dart minimum version is now 2.15.
- core: Update dependencies.
- core: README.md updates.
- core: License changed from Apache 2.0 to BSD-3-Clause.
- feat: Add Windows platform support.
- feat: Add macOS platform support.
- feat: Codec is now applied in web platform (if available).
- feat: Add vorbisOgg, WAV, FLAC, PCM 8 bits, PCM 16 bits.
- feat: Add
isEncoderSupportedto check if the encoder is available on the platform.
- core: BREAK:
-
3.0.428 Mar 2022Release notes
Open source →- fix: iOS - hasPermission double check was needed when permission was undeterminated.
-
3.0.304 Mar 2022Release notes
Open source →- core: Moved from jcenter to mavenCentral (Android).
- feat: Use average instead of peak power (iOS).
-
3.0.222 Nov 2021 -
3.0.122 Nov 2021 -
3.0.028 Jun 2021Release notes
Open source →- feat: Add web support.
- feat: Add
getAmplitude()to get current and max dBFS. - core: static methods are no more! (but api is pretty much the same)
- core: path param is now optional in
startmethod to align behaviour with web platform.
If null is given, a temp file is generated for you. - core:
stopmethod now returns the output path.
-
2.1.122 Apr 2021 -
2.1.020 Mar 2021 -
2.1.0+120 Mar 2021 -
2.0.004 Mar 2021Release notes
Open source →- Add null safety support (based on v1.0.3).
- Updated example. Moved from 'audioplayers' to 'just_audio'.
-
1.0.304 Mar 2021 -
1.0.216 Nov 2020Release notes
Open source →- Fix (for good) potential exception when closing beofre recorder is actually started (Android).
-
1.0.109 Nov 2020Release notes
Open source →- Fix potential exception when closing beofre recorder is actually started (Android).
- Fix potential NPE on permission result (Android).
- Updade dependencies.
-
1.0.027 Jun 2020Release notes
Open source →- Flutter 1.12.0 is now minimum version (Flutter plugin API v2).
- Finalize Record API.
- Request permission on Android too.
- Automatically stop recording when leaving activity / app.
- Add all codecs with cross platform compatibility.
-
0.2.126 Jun 2020 -
0.2.026 Jun 2020 -
0.1.025 Jun 2020