init method

void init(
  1. HTMLAudioElement audioElement,
  2. AudioContext audioContext
)

Initializes the audio visualizer.

This method sets up the necessary Web Audio API nodes and connections. It also initializes _waveformData based on the fftSize.

  • audioElement: The HTML audio element whose audio will be visualized.
  • audioContext: The Web Audio API context to use for creating nodes.

If an error occurs during setup (e.g., due to browser restrictions or invalid parameters), a warning is logged, and the visualizer attempts to disconnect any partially set up nodes.

Implementation

void init(HTMLAudioElement audioElement, AudioContext audioContext) {
  _fftSize = _ensureValidFFTSize(_fftSize);
  try {
    _sourceNode = audioContext.createMediaElementSource(audioElement);
    _analyserNode = audioContext.createAnalyser();
    _analyserNode!.fftSize = _fftSize;
    _waveformData = Uint8List(_analyserNode!.fftSize);

    _sourceNode!.connect(_analyserNode!);
    _analyserNode!.connect(audioContext.destination);
  } catch (e) {
    warn('Error setting up music analyser: $e');
    disconnect();
  }
}