@byomakase/vu-meter
Version:
A customizable peak meter using the web audio API
28 lines (27 loc) • 997 B
TypeScript
import { PeakMeterConfig } from './config';
import { Observable } from 'rxjs';
import { AudioPeakProcessorMessageEvent, Peaks } from './types';
import { VuMeterApi } from './api';
export declare class VuMeter implements VuMeterApi {
channelCount: number;
config: PeakMeterConfig;
parent?: HTMLElement;
ticks?: Array<HTMLElement>;
channelElements?: Array<HTMLElement>;
bars?: Array<HTMLElement>;
tempPeaks: Array<number>;
heldPeaks: Array<number>;
peakHoldTimeouts: Array<number>;
animationRequestId?: number;
private _eventSource$?;
private _eventSourceBreaker$;
private _destroyed$;
constructor(channelCount: number, ele: HTMLElement, options?: Partial<PeakMeterConfig>);
attachSource(eventStreamFactory: Observable<Observable<AudioPeakProcessorMessageEvent>>): VuMeterApi;
private handlePeakProcessorMessageEvent;
private paintMeter;
private clearPeak;
private clearPeaks;
getPeaks(): Peaks;
destroy(): void;
}