react-sound-visualizer
Version:
A lightweight wrapper for the sound-visualizer library
31 lines (28 loc) • 1.16 kB
TypeScript
import * as sound_visualizer from 'sound-visualizer';
import { DrawCurrentOptions, DrawContinuousOptions } from 'sound-visualizer';
type CurrentOptions = {
mode: "current";
} & DrawCurrentOptions;
type ContinuousOptions = {
mode?: "continuous";
} & DrawContinuousOptions;
/**
* The options passed to `useVisualizer`.
* Also part of the props for `Visualizer`, and the options for `visualizerWrapper`.
**/
type UseVisualizerOptions = CurrentOptions | ContinuousOptions;
/**
* Hook that wraps the `visualizer` functions from `sound-visualizer` with a `useMemo`.
*
* @param audio the audio to visualize
* @param canvas the canvas to draw on
* @param options additional options for the `draw` functions.
*
* @returns either the `VisualizerFunctions` from `sound-visualizer` or an empty object, depending on if `audio` or `canvas` are `null` or not.
**/
declare function useVisualizer(audio: MediaStream | null, canvas: HTMLCanvasElement | null, options: UseVisualizerOptions): sound_visualizer.VisualizerFunctions | {
start: undefined;
stop: undefined;
reset: undefined;
};
export { type UseVisualizerOptions, useVisualizer };