import {Registry} from "../events"; export enum VoicePlayerState { INITIALIZING, PREBUFFERING, PLAYING, BUFFERING, STOPPING, STOPPED } export interface VoicePlayerEvents { notify_state_changed: { oldState: VoicePlayerState, newState: VoicePlayerState } } export interface VoicePlayerLatencySettings { /* time in milliseconds */ minBufferTime: number; /* time in milliseconds */ maxBufferTime: number; } export interface VoicePlayer { readonly events: Registry; /** * @returns Returns the current voice player state. * Subscribe to the "notify_state_changed" event to receive player changes. */ getState() : VoicePlayerState; /** * @returns The volume multiplier in a range from [0, 1] */ getVolume() : number; /** * @param volume The volume multiplier in a range from [0, 1] */ setVolume(volume: number); /** * Abort the replaying of the currently pending buffers. * If new buffers are arriving a new replay will be started. */ abortReplay(); /** * Flush the current buffer. * This will most likely set the player into the buffering mode. */ flushBuffer(); /** * Get the currently used latency settings */ getLatencySettings() : Readonly; /** * @param settings The new latency settings to be used */ setLatencySettings(settings: VoicePlayerLatencySettings); /** * Reset the latency settings to the default */ resetLatencySettings(); }