Component props
The rendered AudioLevelMonitor component
The AudioLevelMonitor component visualizes audio from a MediaStream using the Web Audio API's AnalyserNode. It supports multiple visualization modes and is fully customizable.
Visualization Modes:
Key Features:
Audio Analysis:
The component uses fftSize and smoothingTimeConstant to control
frequency analysis. Higher FFT sizes provide more detail but use more CPU.
Basic usage with bars mode:
import { AudioLevelMonitor } from '@hiyve/react-ui';
function MicrophoneLevel({ audioStream }: { audioStream: MediaStream }) {
return (
<AudioLevelMonitor
stream={audioStream}
mode="bars"
barCount={20}
width={300}
height={50}
/>
);
}
Meter mode with custom colors:
import { AudioLevelMonitor } from '@hiyve/react-ui';
function SimpleMeter({ stream }: { stream: MediaStream }) {
return (
<AudioLevelMonitor
stream={stream}
mode="meter"
showPeak
colors={{
low: '#22c55e',
medium: '#eab308',
high: '#ef4444',
meterBackground: '#27272a',
}}
styles={{
mediumThreshold: 0.5,
highThreshold: 0.8,
}}
/>
);
}
Waveform mode in vertical orientation:
import { AudioLevelMonitor } from '@hiyve/react-ui';
function VerticalWaveform({ stream }: { stream: MediaStream }) {
return (
<AudioLevelMonitor
stream={stream}
mode="waveform"
orientation="vertical"
width={60}
height={200}
colors={{ low: '#3b82f6' }}
/>
);
}
Responsive audio monitor:
import { AudioLevelMonitor } from '@hiyve/react-ui';
function ResponsiveMonitor({ stream }: { stream: MediaStream }) {
return (
<AudioLevelMonitor
stream={stream}
width="100%"
height={40}
sx={{ borderRadius: 2 }}
/>
);
}
AudioLevelMonitor provides real-time visualization of audio input levels.