Record audio and store it locally
To use this plugin, add audio_recorder
as a dependency in your pubspec.yaml file.
Make sure you add the following permissions to your Android Manifest
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Make sure you add the following key to Info.plist for iOS
<key>NSMicrophoneUsageDescription</key>
<string>Record audio for playback</string>
// Import package
import 'package:audio_recorder/audio_recorder.dart';
// Check permissions before starting
bool hasPermissions = await AudioRecorder.hasPermissions;
// Get the state of the recorder
bool isRecording = await AudioRecorder.isRecording;
// Start recording
await AudioRecorder.start(path: _controller.text, audioOutputFormat: AudioOutputFormat.AAC);
// Stop recording
Recording recording = await AudioRecorder.stop();
print("Path : ${recording.path}, Format : ${recording.audioOutputFormat}, Duration : ${recording.duration}, Extension : ${recording.extension},");
For now, the plugin only use the AAC compression to encode audio. You can specify the extension of the output audio file in the file path that you give to the start method. The recognized extensions are :
- .m4a
- .mp4
- .aac
If the file path does not finish with these extensions, the ".m4a" extension is added by default.
The start method raise an exception if :
- A file already exists at the given file path
- The parent directory of the file path does not exist
For help getting started with Flutter, view our online documentation.
For help on editing plugin code, view the documentation.