Add-on Directory

Audio Recorder for Vaadin - Vaadin Add-on Directory

Audio recording with real-time waveform visualization for Vaadin Flow. AI-agnostic — works with any transcription backend. Audio Recorder for Vaadin - Vaadin Add-on Directory
# Audio Recorder for Vaadin Record audio from the microphone with **real-time frequency bars or waveform visualization** — all from pure Java. Zero JavaScript required. ## AI-Agnostic The addon captures `byte[]` and delivers them to your server. YOU decide what to do with them: ```java // OpenAI Whisper AudioRecorder recorder = new AudioRecorder(audio -> whisperService.transcribe(audio.bytes(), audio.mimeType()) ); // Google Gemini AudioRecorder recorder = new AudioRecorder(audio -> geminiService.transcribe(audio.bytes()) ); // Save to disk — no AI at all AudioRecorder recorder = new AudioRecorder(audio -> { Files.write(Path.of("recording.webm"), audio.bytes()); return "Saved!"; }); ``` ## Features - Real-time frequency bars or oscilloscope waveform visualization - Gain/level indicator bar - Pause & resume recording - Upload existing audio files - Built-in playback of last recording - Headless mode — hide UI, control from Java - Max duration auto-stop - 3 theme presets + full custom colors - MIME type validation whitelist ## Quick Start ```java AudioRecorder recorder = new AudioRecorder(audio -> myService.transcribe(audio.bytes(), audio.mimeType()) ); recorder.addHandlerResultListener(e -> textArea.setValue(e.getResult())); add(recorder); ``` ## Browser Support Chrome, Firefox, Edge, Safari 14.1+ (requires MediaRecorder + Web Audio API)
Source Code
View on GitHub

Audio Recorder for Vaadin version 0.1.0
Initial release — Audio recording with real-time waveform/frequency visualization for Vaadin Flow. Features: AudioHandler functional interface, pause/resume, file upload, headless mode, theme presets, gain indicator, max duration auto-stop.

Audio Recorder for Vaadin version 0.2.0
## Version 0.2.0 — Java 25 & Vaadin 25 Major compatibility update introducing Java 25 and Vaadin 25.3.5 support. ### Improvements - Upgraded to Java 25 and Vaadin 25. - Updated to Jakarta Servlet 6.1 and Jetty 12 EE11. - Improved microphone lifecycle and browser resource cleanup. - Strengthened audio validation with a 50 MiB payload limit. - Separated demo sources from the production JAR. - Added 7 automated tests and GitHub Actions CI. - Updated documentation and packaging. ### Compatibility - Requires Java 25 and Vaadin 25. - Applications using Java 21 and Vaadin 24 should continue using version 0.1.0. - No mandatory Spring Boot or AI provider dependencies. ### Release https://github.com/geovannymcode/vaadin-audio-recorder/releases/tag/v0.2.0