Voice Recorder in FlutterFlow

FlutterFlow enables powerful app development with drag-and-drop tools and state management — no custom code required. In this guide, you’ll learn how to build a Voice Recorder feature from scratch, with recording, playback, and saved voice notes.
You’ll create:
- A mic permission flow
- A record button
- A list of audio recordings
- Playback functionality using FlutterFlow’s built-in widgets
Let’s walk through the full setup!
Step 1: Create the Data Schema
First, define a local Data Type to store each audio note.
Data Type Name: voiceNoteDS
Fields:
audioPath
(String): the file path of the recordingcreatedAt
(DateTime): the date and time when it was recorded
This structure will be used to store and display each recording in a list.
Step 2: Create App State Variable
Next, set up a persistent App State variable to hold all voice notes:
App State Variable
- Name:
voiceNotesAS
- Type:
List<Data (voiceNoteDS)>
- Persistence: ✅ Enabled
This variable will update every time a recording is saved, keeping the list even when the app is closed and reopened.
Step 3: Add Microphone Permission
Before recording, we must ask the user for microphone access.
How to do it:
- Open the Action Flow for your record button.
- Add the
Request Permission
action. - Choose Permission Type:
microphone
This ensures the app can access the mic before recording begins.
Step 4: Setup Voice Recording Logic (Visual Flow)
Refer to your flow (see screenshot Step 5). You’ll use a conditional to toggle recording on and off.
Logic Flow:
- Condition:
isRecording == false
- ✅ TRUE → Start Recording → Set
isRecording = true
- ❌ FALSE → Stop Recording → Set
isRecording = false
→ Save file path → Create newvoiceNoteDS
item → Add tovoiceNotesAS
You’ll use the following actions:
- Start Audio Recording
- Stop Audio Recording
- Update Page/App State
- Append to List (voiceNotesAS)
Step 5: Design the UI
Here’s how the layout is structured:
🔹 Main Layout
- Stack for overlapping mic button at bottom
- Column to hold title and recordings list
- ListView for displaying each recorded item
🎵 Inside ListView:
Each item includes:
- The recording timestamp (using
createdAt
) - A Play button using Audio Player widget, with
audioPath
as the file input
UI Preview
Here’s a screenshot of the working UI:
You can see:
- The page title “Voice Recorder”
- A card-style list of saved recordings with play buttons
- A floating red microphone button to toggle recording
🎯 The clean layout is perfect for voice notes, chat messages, or interviews.
Final Result
When you’re done:
- Tap the mic button to start/stop recording.
- Recordings are saved locally with timestamps.
- They appear in a scrollable ListView.
- Each item includes a play button to listen to the audio.
And all of this is built inside FlutterFlow using built-in widgets, actions, and state — no Dart code needed!
Wrap-Up
You’ve successfully created a fully functional Voice Recorder app in FlutterFlow with:
- Mic permission handling
- Dynamic UI
- Persistent storage
- Instant playback
This feature can now be reused in note-taking apps, audio journals, or messaging apps.
Let me know if you’d like this exported as PDF, Markdown, or submitted to the FlutterFlow Marketplace as a reusable component!
Conclusion
In this tutorial, you’ve learned how to create a complete Voice Recorder in FlutterFlow — without writing any custom code. From setting up the data structure and managing app state, to designing a clean UI and handling microphone permissions, each step was accomplished using FlutterFlow’s built-in tools and visual logic.
This voice recorder feature is not only practical but also reusable across various app use cases like:
- Personal voice memos
- Chat voice messages
- Task reminders
- Audio logs
By combining widgets like Audio Recorder, Audio Player, and ListView, along with state management, you’ve built a real-world feature that enhances user experience and app functionality.
Now that your voice recording component is ready, you can extend it even further — perhaps by uploading audio to Firebase Storage, syncing with user accounts, or transcribing notes using AI tools.
Keep exploring, and keep building smarter with FlutterFlow!
Feel free to connect with us:
And read more articles from FlutterDevs.com.
FlutterDevs team of Flutter developers to build high-quality and functionally-rich apps. Hire Flutterflow developer for your cross-platform Flutter mobile app project on an hourly or full-time basis as per your requirement! For any flutter-related queries, you can connect with us on Facebook, GitHub, Twitter, and LinkedIn.
We welcome feedback and hope that you share what you’re working on using #FlutterDevs. We truly enjoy seeing how you use Flutter to build beautiful, interactive web experiences.
