audio.libx.js
Version:
Comprehensive audio library with progressive streaming, recording capabilities, real-time processing, and intelligent caching for web applications
56 lines • 2.09 kB
TypeScript
import { RealtimeProcessingOptions, RealtimeAudioData, AudioEffect } from './types.js';
export declare class RealtimeAudioProcessor {
private _audioContext;
private _sourceNode;
private _analyserNode;
private _gainNode;
private _outputGainNode;
private _filterNode;
private _effectNodes;
private _options;
private _isProcessing;
private _animationFrame;
private _callbacks;
constructor(options?: RealtimeProcessingOptions);
initialize(mediaStream: MediaStream): Promise<void>;
private _setupProcessingChain;
private _applyEffects;
private _createEffectNode;
private _createReverbNode;
private _createEchoNode;
startProcessing(): void;
stopProcessing(): void;
private _processAudioFrame;
onAudioData(callback: (data: RealtimeAudioData) => void): void;
onSilenceDetected(callback: (isSilence: boolean) => void): void;
onLevelUpdate(callback: (level: number) => void): void;
updateOptions(options: Partial<RealtimeProcessingOptions>): void;
setEffectsEnabled(enabled: boolean): void;
private _rebuildProcessingChain;
setVolume(volume: number): void;
setOutputVolume(volume: number): void;
setOutputMuted(muted: boolean): void;
setFilter(type: BiquadFilterType, frequency: number, Q?: number): void;
toggleEffect(effectType: string, enabled: boolean): void;
getCurrentLevel(): number;
getFrequencyData(): Uint8Array | null;
getWaveformData(): Uint8Array | null;
createProcessedStream(): MediaStream | null;
getCapabilities(): {
isSupported: boolean;
hasAnalyser: boolean;
isProcessing: boolean;
supportedEffects: string[];
sampleRate: number;
currentOptions: {
enableSilenceDetection?: boolean;
silenceThresholdDb?: number;
enableLevelMonitoring?: boolean;
levelUpdateInterval?: number;
enableEffects?: boolean;
effects?: AudioEffect[];
};
};
dispose(): void;
}
//# sourceMappingURL=RealtimeAudioProcessor.d.ts.map