import { PlayOptions, Stream } from '../animation'; import { Component } from '../component'; import { ContextManager } from '../context'; import { Event } from '../event'; import { Observable } from '../observable'; export interface AudioConstructorProps { /** @zprop * @zvalues files *.+(mp3|wav) */ source: string; /** * @zprop * @zdefault default */ audioLayer?: string; /** @zprop * @zdefault false */ autoplay?: boolean; } /** * The Audio class represents an audio component that can be controlled. * It provides methods to play, pause, stop, and seek the audio. * It also provides observables for volume and mute state, and events for when the audio ends, stops, pauses, and plays. * * @zcomponent * @ztag core/audio * @zgroup Media * @zicon music_note * @zstream */ export declare class Audio extends Component implements Stream { /** @zui */ readonly onEnded: Event<[Audio]>; /** @zui */ readonly onStop: Event<[Audio]>; /** @zui */ readonly onPause: Event<[Audio]>; /** @zui */ readonly onPlay: Event<[Audio]>; readonly audioContext: AudioContext; readonly destination: AudioNode; audioBuffer?: AudioBuffer; private _gain; private _reversed?; private _playhead; private _rate; private _session?; /** * Creates a new Audio component. * @param mgr - The current ContextManager * @param props - The constructor properties. */ constructor(mgr: ContextManager, props: AudioConstructorProps); private _load; private _updateVolume; /** @zprop * @zdefault false * @zgroup Audio * @zgrouppriority 20 */ readonly muted: Observable; private _getReversed; /** * @zprop * @ztype proportion * @zgroup Audio * @zgrouppriority 20 * @zdefault 1 */ readonly volume: Observable; /** @zprop * @zdefault false * @zgroup Audio * @zgrouppriority 20 */ readonly loop: Observable; /** * @zprop * @zui */ play(opts?: PlayOptions): void; private _pause; /** * @zprop * @zui */ pause(): void; /** * @zprop * @zui */ stop(): void; /** * @zprop * @zui */ seek(/** @ztype time-milliseconds */ t: number): void; length(): number | undefined; dispose(): never; }