import { HZEngineCore } from "../index.js"; import { Platform } from "../platform/index.js"; export declare class Audio { _core: HZEngineCore; constructor(_core: HZEngineCore); private accessor _channels; get channels(): Record; createChannel(name: string): Audio.Channel; } export declare namespace Audio { class Channel { _audio: Audio; _audioPlayer: Platform.AudioPlayer; constructor(_audio: Audio); onRelease(): void; mode: Channel.Mode; status: Channel.Status; _playbackList: PlaybackItem[]; _nowIndex: number | null; currentInfo: AudioInfo | null; push(item: PlaybackItem): void; play(): void; pause(): void; /** * 停止并清空队列 */ stop(): void; serialize(): Channel.Serialized; static deserialize(audio: Audio, data: Channel.Serialized): Channel; _onPrepared(result: boolean): void; _onCompleted(): void; /** * Play the next item in the playback list. If there are no items in the * playback list, set the channel status to Stopped and return. * @private */ _playNext(): void; } namespace Channel { enum Mode { PlayInOrder = 0, PlayInOrderRepeat = 1 } enum Status { Stopped = 0, Playing = 1, Error = 2 } type Serialized = { mode: Channel.Mode; status: Channel.Status; playbackList: PlaybackItem[]; nowIndex: number | null; }; } interface PlaybackItem { path: string; } interface AudioInfo { duration: number; title: string; artist: string; } }