flutter_audio_recorder 0.2.0 flutter_audio_recorder: ^0.2.0 copied to clipboard
Flutter Audio Record Plugin that supports Record Pause Resume Stop and provide access to audio level metering properties average power peak power.
flutter_audio_recorder #
English | 简体中文
Flutter Audio Record Plugin that supports Record
Pause
Resume
Stop
and provide access to audio level metering properties average power
peak power
(currently for iOS only)
Installation #
add flutter_audio_recorder
to your pubspec.yaml
iOS Permission #
add usage description to plist
<key>NSMicrophoneUsageDescription</key>
<string>Can We Use Your Microphone Please</string>
Usage #
Init (run this before start
, so we could check if file with given name already exists)
var recorder = FlutterAudioRecorder("recording20190916", AudioFormat.AAC); // recording20190916.m4a by default
await recorder.initialized;
// note: when extension and format conflicts, AudioFormat will overwrite the extension.
// example: FlutterAudioRecorder("recording20190916.wav", AudioFormat.AAC)
// this will be recording20190916.m4a
Audio Extension and Format Mapping
Audio Format | Audio Extension |
---|---|
AAC | .m4a .aac .mp4 |
WAV | .wav |
or
var recorder = FlutterAudioRecorder("filename.mp4"); // .wav .aac .m4a
await recorder.initialized;
Start recording
await recorder.start();
var recording = await recorder.current(channel: 0);
Get recording details
var current = await recording.current(channel: 0);
// print(current.status);
You could use a timer to access details every 50ms(simply cancel the timer when recording is done)
new Timer.periodic(tick, (Timer t) async {
var current = await recording.current(channel: 0);
// print(current.status);
setState(() {
});
});
Recording
Name | Description |
---|---|
path | String |
extension | String |
duration | Duration |
audioFormat | AudioFormat |
metering | AudioMetering |
status | RecordingStatus |
Recording.metering
Name | Description |
---|---|
peakPower | double |
averagePower | double |
isMeteringEnabled | bool |
Recording.status
Unset
,Initialized
,Recording
,Paused
,Stopped
Pause
await recorder.pause();
Resume
await recorder.resume();
Stop (after stop
, run init
again to create another recording)
var result = await recorder.stop();
File file = widget.localFileSystem.file(result.path);
Example #
Please check example app using Xcode.
Getting Started #
This project is a starting point for a Flutter plug-in package, a specialized package that includes platform-specific implementation code for Android and/or iOS.
For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.