audio_visualizer
A Flutter package for seamlessly visualizing audio from files, assets, HTTP streams, microphone input, and raw PCM16 data.
Eittipat/audio_visualizer open-source repository details.
{"sdk":"flutter"}^2.0.2{"sdk":"flutter"}^4.0.0English project snapshot. Visit GitHub for the latest content.
A Flutter package for seamlessly visualizing audio from files, assets, HTTP streams, microphone input, and raw PCM16 data.
Explore all usage examples in the example directory.
Demo App 1 Demo App 2
| Feature | Android | iOS | macOS |
|---|---|---|---|
| Visualize File | ✅ | ✅ | ✅ |
| Visualize Asset | ✅ | ✅ | ✅ |
| Visualize HTTP | ✅ | ✅ | ✅ |
| Visualize Microphone | ✅ | ✅ | ✅ |
| Visualize Raw PCM16 | ✅ | ✅ | ✅ |
This package provides three major components:
VisualizerPlayer
For visualizing audio from files, assets, and HTTP streams.
PCMVisualizer
For visualizing raw PCM16 data from custom sources.
Elevate your app's aesthetic with four stunning, ready-to-use visualizer widgets:
BarVisualizerCircleVisualizerLineVisualizerMultiWaveVisualizerRainbowBlockVisualizerChoose from six band types to suit your visualization needs:
fourBandfourBandVisualeightBandtenBandtwentySixBandthirtyOneBandLoad audio using the appropriate prefix:
asset://path_to_assetfile://path_to_filehttp://url or https://urlExample:
// Initialize VisualizerPlayer
final audioPlayer = VisualizerPlayer();
await audioPlayer.initialize();
await audioPlayer.setDataSource("asset://assets/sample.mp3");
await audioPlayer.play();
// Visualize with BarVisualizer
ListenableBuilder(
listenable: audioPlayer,
builder: (context, child) {
return BarVisualizer(
input: audioPlayer.value.waveform,
backgroundColor: Colors.black,
color: Colors.greenAccent,
gap: 2,
);
},
),
// Dispose VisualizerPlayer
audioPlayer.dispose();
This package does not directly handle microphone input. You can use the record package to capture audio and feed it into the visualizer.
Example:
// Initialize PCMVisualizer
final pcmVisualizer = PCMVisualizer();
pcmVisualizer.feed(rawPCM16Data);
// Visualize with BarVisualizer
ListenableBuilder(
listenable: pcmVisualizer,
builder: (context, child) {
return BarVisualizer(
input: pcmVisualizer.value.waveform,
backgroundColor: Colors.black,
color: Colors.greenAccent,
gap: 2,
);
},
),
// Dispose PCMVisualizer
pcmVisualizer.dispose();
On Android, the following permission is required to visualize audio:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
This project is inspired by and leverages ideas and code from the following: