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
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 CodeView 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.