UNPKG

waveform-renderer

Version:

High-performance audio waveform visualization library for the web. Create customizable, interactive waveform renderers with TypeScript support and zero dependencies.

81 lines (78 loc) 2.4 kB
// Generated by dts-bundle-generator v9.5.1 export interface ProgressLineOptions { color?: string; heightPercent?: number; position?: RenderMode; style?: "dashed" | "dotted" | "solid"; width?: number; } export type RenderMode = "bottom" | "center" | "top"; export interface WaveformEvents { destroy: void; error: Error; progressChange: number; ready: void; renderComplete: void; renderStart: void; resize: { height: number; width: number; }; seek: number; } export interface WaveformOptions { amplitude?: number; backgroundColor?: string; barWidth?: number; borderColor?: string; borderRadius?: number; borderWidth?: number; color?: string; gap?: number; minPixelRatio?: number; position?: RenderMode; progress?: number; progressLine?: null | ProgressLineOptions; smoothing?: boolean; } declare class EventEmitter<Events extends Record<string, any>> { private events; off<E extends keyof Events>(event: E, callback: (args: Events[E]) => void): void; on<E extends keyof Events>(event: E, callback: (args: Events[E]) => void): void; once<E extends keyof Events>(event: E, callback: (args: Events[E]) => void): void; removeAllListeners<E extends keyof Events>(event?: E): void; protected emit<E extends keyof Events>(event: E, args: Events[E]): void; protected hasListeners<E extends keyof Events>(event: E): boolean; } export declare class WaveformRenderer extends EventEmitter<WaveformEvents> { private readonly canvas; private readonly ctx; private devicePixelRatio; private frameRequest?; private isDestroyed; private options; private peaks; private readonly resizeObserver; constructor(canvas: HTMLCanvasElement, peaks: number[], options?: Partial<WaveformOptions>); destroy(): void; setOptions(options: Partial<WaveformOptions>): void; setPeaks(peaks: number[]): void; setProgress(progress: number): void; setProgressLineOptions(options: null | Partial<ProgressLineOptions>): void; private calculateProgressFromEvent; private calculateProgressFromTouch; private drawWaveform; private drawWaveformWithColor; private handleClick; private handleError; private handleResize; private handleTouch; private resizeCanvas; private scheduleRender; private setupContext; } /** * Calculates peaks from an AudioBuffer */ export declare function getPeaksFromAudioBuffer(audioBuffer: AudioBuffer, numberOfPeaks: number): number[]; export {};