refactor(visualizer): Removed restart requirement and refactored impls (#4200)

This commit is contained in:
Iris
2026-01-29 09:24:00 +01:00
committed by GitHub
parent 2180a2a810
commit 442dd51d3d
5 changed files with 138 additions and 147 deletions

View File

@ -4,35 +4,24 @@ import { Visualizer } from './visualizer';
import type { VisualizerPluginConfig } from '../index';
class VudioVisualizer extends Visualizer<Vudio> {
name = 'vudio';
visualizer: Vudio;
class VudioVisualizer extends Visualizer {
private readonly visualizer: Vudio;
constructor(
audioContext: AudioContext,
_audioContext: AudioContext,
audioSource: MediaElementAudioSourceNode,
visualizerContainer: HTMLElement,
canvas: HTMLCanvasElement,
audioNode: GainNode,
stream: MediaStream,
options: VisualizerPluginConfig,
config: VisualizerPluginConfig,
) {
super(
audioContext,
audioSource,
visualizerContainer,
canvas,
audioNode,
stream,
options,
);
super(audioSource, audioNode);
this.visualizer = new Vudio(stream, canvas, {
width: canvas.width,
height: canvas.height,
// Visualizer config
...options,
...config,
});
this.visualizer.dance();
@ -45,7 +34,12 @@ class VudioVisualizer extends Visualizer<Vudio> {
});
}
render() {}
destroy() {
this.visualizer.pause();
try {
this.audioSource.disconnect(this.audioNode);
} catch {}
}
}
export default VudioVisualizer;