import { System } from '../core/System'; import { Howl } from 'howler'; export interface SoundConfig { /** 音频源(URL 或 base64) */ src: string | string[]; /** 音量 (0-1) */ volume?: number; /** 是否循环 */ loop?: boolean; /** 是否预加载 */ preload?: boolean; /** 音频格式 */ format?: string[]; /** 精灵图定义 */ sprite?: { [key: string]: [number, number] | [number, number, boolean]; }; } export interface SoundInstance { /** Howl 实例 */ howl: Howl; /** 配置 */ config: SoundConfig; /** 当前播放 ID */ currentId?: number; } export declare class AudioSystem extends System { static priority: number; /** 音效库 */ private sounds; /** 音乐库 */ private music; /** 当前播放的音乐 */ private currentMusic; /** 主音量 */ private _masterVolume; /** 音效音量 */ private _sfxVolume; /** 音乐音量 */ private _musicVolume; /** 是否静音 */ private _muted; get masterVolume(): number; set masterVolume(value: number); get sfxVolume(): number; set sfxVolume(value: number); get musicVolume(): number; set musicVolume(value: number); get muted(): boolean; set muted(value: boolean); onCreate(): void; onDestroy(): void; /** * 加载音效 */ loadSound(name: string, config: SoundConfig): Promise; /** * 加载音乐 */ loadMusic(name: string, config: SoundConfig): Promise; /** * 批量加载 */ loadAll(manifest: { sounds?: Record; music?: Record; }): Promise; /** * 播放音效 */ playSound(name: string, options?: { volume?: number; rate?: number; sprite?: string; }): number; /** * 停止音效 */ stopSound(name: string, id?: number): void; /** * 播放音乐 */ playMusic(name: string, options?: { fadeIn?: number; restart?: boolean; }): void; /** * 停止音乐 */ stopMusic(options?: { fadeOut?: number; }): void; /** * 暂停音乐 */ pauseMusic(): void; /** * 恢复音乐 */ resumeMusic(): void; /** * 暂停所有音频 */ pauseAll(): void; /** * 恢复所有音频 */ resumeAll(): void; /** * 停止所有音频 */ stopAll(): void; /** * 卸载所有音频 */ unloadAll(): void; /** * 卸载指定音效 */ unloadSound(name: string): void; /** * 卸载指定音乐 */ unloadMusic(name: string): void; /** * 检查音效是否已加载 */ hasSound(name: string): boolean; /** * 检查音乐是否已加载 */ hasMusic(name: string): boolean; /** * 检查音乐是否正在播放 */ isMusicPlaying(): boolean; /** * 获取当前播放的音乐名称 */ getCurrentMusic(): string | null; /** * 更新音效音量 */ private updateSoundVolumes; /** * 更新音乐音量 */ private updateMusicVolumes; /** * 解锁音频上下文(移动端需要用户交互后才能播放) */ unlock(): Promise; } //# sourceMappingURL=AudioSystem.d.ts.map