/** * Represents an audio control implementation */ export interface Audio { /** * Whether the audio should loop (repeat forever) */ loop: boolean; /** * The volume (between 0 and 1) */ volume: number; /** * Set the playbackRate, default is 1.0 at normal speed. * For example 2.0 is double speed, and 0.5 is half speed. */ playbackRate: number; /** * Whether or not any audio is playing */ isPlaying(): boolean; /** * Returns if the audio is paused */ isPaused(): boolean; /** * Returns if the audio is stopped */ isStopped(): boolean; /** * Will play the sound or resume if paused */ play(): Promise; /** * Seek to a position (in seconds) in the audio * @param position */ seek(position: number): void; /** * Return the duration of the sound */ getTotalPlaybackDuration(): number; /** * Return the current playback time of the playing track in seconds from the start */ getPlaybackPosition(): number; /** * Pause the sound */ pause(): void; /** * Stop playing the sound and reset */ stop(): void; }