UNPKG

@audiowave/react

Version:

React audio visualization component

81 lines 2.48 kB
import { AudioSourceConfig, ExtendedAudioSource, AudioSourceState } from '../types/AudioSource'; export interface WebAudioSourceOptions extends AudioSourceConfig { /** Smoothing time constant for the analyser (0-1, default: 0.8) */ smoothingTimeConstant?: number; } /** * WebAudioSource - Unified Web Audio API implementation * * Supports multiple input types: * - MediaStream (from getUserMedia, getDisplayMedia) * - HTMLMediaElement (audio/video elements) * - AudioNode (existing Web Audio nodes) */ export declare class WebAudioSource implements ExtendedAudioSource { private audioContext; private analyserNode; private sourceNode; private audioData; private state; private options; private mediaStream; private inputAudioNode; constructor(options?: WebAudioSourceOptions); /** * Initialize from MediaStream (getUserMedia, getDisplayMedia) */ initializeFromMediaStream(stream: MediaStream): Promise<void>; /** * Initialize from HTMLMediaElement (audio/video elements) */ initializeFromMediaElement(element: HTMLMediaElement): Promise<void>; /** * Initialize from existing AudioNode */ initializeFromAudioNode(node: AudioNode): Promise<void>; /** * Get current audio data for visualization (Standard AudioSource interface) */ getAudioData(): Uint8Array | null; /** * Get time domain data specifically (for debugging/comparison) */ getTimeDomainData(): Uint8Array | null; /** * Get frequency domain data specifically (for debugging/comparison) */ getFrequencyData(): Uint8Array | null; /** * Check if the source is currently active (Standard AudioSource interface) */ isActive(): boolean; /** * Get current state of the audio source (Extended interface) */ getState(): AudioSourceState; /** * Get configuration used by this audio source (Extended interface) */ getConfig(): AudioSourceConfig; /** * Destroy the source and clean up all resources (Extended interface) */ destroy(): void; /** * Set up Web Audio API context and analyser */ private setupWebAudio; /** * Set up analyser node */ private setupAnalyser; /** * Connect source node to analyser */ private connectNodes; /** * Clean up all resources */ private cleanup; } //# sourceMappingURL=WebAudioSource.d.ts.map