UNPKG

narraleaf-react

Version:

A React visual novel player framework

51 lines (50 loc) 1.83 kB
import { Sound, SoundType } from "../../nlcore/elements/sound"; import { FadeOptions } from "../../nlcore/elements/type"; import { Awaitable } from "../../../util/data"; import { GameState } from "../gameState"; import { LogicAction } from "../../nlcore/action/logicAction"; export type AudioDataRaw = { isPlaying: boolean; position: number; }; export type AudioManagerDataRaw = { sounds: [string, AudioDataRaw][]; groups: [SoundType, number][]; }; export declare class AudioManager { private gameState; private state; private tasks; private groups; constructor(gameState: GameState); play(sound: Sound, options?: FadeOptions): Awaitable<void>; stop(sound: Sound, duration?: number): Awaitable<void>; setVolume(sound: Sound, volume: number, duration?: number): Awaitable<void>; pause(sound: Sound, duration?: number): Awaitable<void>; resume(sound: Sound, duration?: number): Awaitable<void>; setRate(sound: Sound, rate: number): Awaitable<void>; getPosition(sound: Sound): number; isPlaying(sound: Sound): boolean; toData(): AudioManagerDataRaw; fromData(data: AudioManagerDataRaw, elementMap: Map<string, LogicAction.GameElement>): this; soundFromData(sound: Sound, data: AudioDataRaw): void; isManaged(sound: Sound): boolean; reset(): void; setGroupVolume(type: SoundType, volume: number): void; setGlobalVolume(volume: number): void; getGlobalVolume(): number; getGroupVolume(type: SoundType): number; private setupGroupVolume; private initSound; private pushTask; private getState; private abortTask; private fadeTo; private stopSound; private pauseSound; private resumeSound; private getHowlConfig; private createTask; private wrapTask; private applyEffectiveVolume; }