@just-every/ensemble
Version:
LLM provider abstraction layer with unified streaming interface
37 lines • 1.16 kB
TypeScript
export interface AudioStreamPlayerOptions {
onFirstAudioPlay?: () => void;
}
export declare class AudioStreamPlayer {
private audioContext;
private sourceNodes;
private gainNodes;
private nextStartTime;
private expectedChunkIndex;
private receivedFinalChunk;
private pcmParameters;
private pcmDataQueue;
private bufferDurationTarget;
private bytesPerSample;
private isFirstBuffer;
private currentFormat;
private fallbackAudio;
private fallbackChunks;
private onFirstAudioPlay?;
constructor(options?: AudioStreamPlayerOptions);
initAudioContext(): Promise<void>;
startStream(params: {
sampleRate: number;
channels: number;
bitDepth: number;
} | undefined, format: string): void;
addChunk(base64Chunk: string, chunkIndex: number, isFinalChunk: boolean): void;
private _addPcmChunk;
private _processPcmQueue;
private _addFallbackChunk;
stopStream(): void;
fadeOutAndStop(fadeTimeMs?: number): void;
private _resetState;
get isPlaying(): boolean;
get isStreaming(): boolean;
}
//# sourceMappingURL=audio_stream_player.d.ts.map