# new AudioInputProcessor(options)
Parameters:
| Name | Type | Description |
|---|---|---|
options |
Object
|
Configuration options |
audioContext |
AudioContext
|
The Web Audio API AudioContext to use |
stream |
MediaStream
|
The audio MediaStream to analyze (typically from getUserMedia) |
Example
// Create an audio context and get user media
const audioContext = new AudioContext();
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
// Create the processor
const processor = new AudioInputProcessor({ audioContext, stream });
// Poll for volume levels (e.g., for a VU meter)
setInterval(() => {
const volume = processor.getVolume();
updateVuMeter(volume); // 0-255 range
}, 100);
// Clean up when done
processor.dispose();
Members
Methods
# dispose()
Disposes of the processor and releases all resources
Call this method when you're done using the processor to prevent memory leaks. This disconnects all audio nodes but does not stop the underlying MediaStream tracks (those are managed by the Client).
Example
// Clean up when leaving a room
processor.dispose();
# getAnalyser() → {AnalyserNode|null}
Gets the AnalyserNode
Useful for custom audio analysis beyond the built-in getVolume() method. You can use this to create custom visualizations or frequency analysis.
The analyser node, or null if disposed
AnalyserNode
|
null
Example
// Get frequency data for a spectrum analyzer
const analyser = processor.getAnalyser();
const frequencyData = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteFrequencyData(frequencyData);
# getSource() → {MediaStreamAudioSourceNode|null}
Gets the MediaStreamAudioSourceNode
Useful for connecting additional audio processing nodes in a chain.
The source node, or null if disposed
MediaStreamAudioSourceNode
|
null
# getVolume() → {number}
Gets the current audio volume level
Returns the average frequency amplitude across all frequency bins. This value can be used for VU meters or voice activity detection.
The average volume level (0-255 range, where 0 is silence)
number
Example
// Use for a VU meter visualization
const volume = processor.getVolume();
const percentage = (volume / 255) * 100;
vuMeterElement.style.width = `${percentage}%`;