UNPKG

@drincs/pixi-vn

Version:

Pixi'VN is a npm package that provides various features for creating visual novels.

1 lines 57 kB
{"version":3,"sources":["../src/sound/index.ts","../src/constants.ts","../src/utils/log-utility.ts","../src/utils/export-utility.ts","../src/sound/functions/channel-utility.ts","../src/sound/SoundManagerStatic.ts","../src/sound/functions/proxy-utility.ts","../src/sound/classes/AudioChannel.ts","../src/sound/functions/sound-utility.ts","../src/sound/SoundManager.ts","../src/sound/constants.ts"],"names":["GENERAL_CHANNEL","logger","message","optionalParams","createExportableElement","element","elementString","e","PixiError","calculateVolume","mediaVolume","channelVolume","SoundManagerStatic","__publicField","proxyMedia","mediaAlias","media","channel","target","prop","receiver","entry","value","AudioChannel","alias","channelOptions","aliasOrMediaAlias","soundAliasOrOptions","options","soundAlias","oldMedia","sound","timeoutId","item","GameUnifier","mediaId","mediaInstance","mediaMuted","instances","FilterMemoryToFilter","filter","res","f","filters","FilterToFilterMemory","SoundManager","filtersAll","sourceOptions","s","legacy","autoPause","volume","speed","paramOptions","PIXI","promise","assets","key","Sound","a","perChannelOptions","mediaInstances","result","data","soundsPlaying","promises","usedChannels","channelAlias","promises2","mediaInstanceData","instance","id"],"mappings":"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","file":"sound.cjs","sourcesContent":["import { GameUnifier } from \"@drincs/pixi-vn/core\";\nimport SoundManagerInterface from \"./interfaces/SoundManagerInterface\";\nimport SoundManager from \"./SoundManager\";\nimport SoundManagerStatic from \"./SoundManagerStatic\";\n\nexport { filters } from \"./constants\";\nexport type { default as AudioChannelInterface } from \"./interfaces/AudioChannelInterface\";\nexport type { default as IMediaInstance } from \"./interfaces/IMediaInstance\";\nexport type {\n ExportedSound,\n ExportedSoundPlay,\n default as SoundGameState,\n SoundPlay,\n} from \"./interfaces/SoundGameState\";\nexport type {\n ChannelOptions,\n default as SoundOptions,\n SoundPlayOptions,\n SoundPlayOptionsWithChannel,\n} from \"./interfaces/SoundOptions\";\nexport { default as SoundManagerStatic } from \"./SoundManagerStatic\";\nexport type { default as SoundFilterMemory } from \"./types/SoundFilterMemory\";\n\nconst sound: SoundManagerInterface = new SoundManager();\n\nGameUnifier.addOnPreContinue(async () => {\n try {\n SoundManagerStatic.delayTimeoutInstances.forEach((id) => {\n clearTimeout(id[0]);\n const instance = SoundManagerStatic.mediaInstances[id[1]];\n if (instance) {\n instance.instance.paused = false;\n }\n });\n SoundManagerStatic.delayTimeoutInstances = [];\n Object.values(SoundManagerStatic.channels).forEach((channel) => {\n if (!channel.background) {\n channel.stopAll();\n }\n });\n } catch (e) {}\n});\n\nexport { sound };\n","import type { PauseType, RepeatType } from \"./canvas\";\n\nexport { version as PIXIVN_VERSION } from \"../package.json\";\n/**\n * @deprecated\n */\nexport const Repeat: RepeatType = \"repeat\";\n/**\n * Pause the tickers for a duration.\n * @param duration Duration in seconds\n * @returns The pause object\n * @deprecated\n */\nexport function Pause(duration: number): PauseType {\n return {\n type: \"pause\",\n duration: duration,\n };\n}\n\n/**\n * Is a special alias to indicate the game layer.\n */\nexport const CANVAS_APP_GAME_LAYER_ALIAS = \"__game_layer__\";\n\nexport const CANVAS_CONTAINER_ID = \"Container\";\nexport const CANVAS_IMAGE_CONTAINER_ID = \"ImageContainer\";\nexport const CANVAS_IMAGE_ID = \"Image\";\nexport const CANVAS_SPRITE_ID = \"Sprite\";\nexport const CANVAS_TEXT_ID = \"Text\";\nexport const CANVAS_VIDEO_ID = \"Video\";\n\n/**\n * The default audio channel for sounds that don't specify one.\n */\nexport const GENERAL_CHANNEL = \"general\";\nexport const MAIN_STORAGE_KEY = \"storage\";\nexport const TEMP_STORAGE_KEY = \"temp\";\nexport const NARRATION_STORAGE_KEY = \"narration\";\nexport const FLAGS_KEY = \"flags\";\n\nexport const SYSTEM_RESERVED_STORAGE_KEYS = {\n /**\n * The key of the current dialogue memory\n */\n CURRENT_DIALOGUE_MEMORY_KEY: \"dialogue\",\n /**\n * The key of step counter of the current dialogue memory\n */\n LAST_DIALOGUE_ADDED_IN_STEP_MEMORY_KEY: \"dialogue:step_counter\",\n /**\n * The key of the current menu options memory\n */\n CURRENT_MENU_OPTIONS_MEMORY_KEY: \"choice:options\",\n /**\n * The key of the last menu options added in the step memory\n */\n LAST_MENU_OPTIONS_ADDED_IN_STEP_MEMORY_KEY: \"choice:step_counter\",\n /**\n * The key of the input memory. This value can be read by pixi-vn json importer\n */\n CURRENT_INPUT_VALUE_MEMORY_KEY: \"input:value\",\n /**\n * The key of the last input added in the step memory\n */\n LAST_INPUT_ADDED_IN_STEP_MEMORY_KEY: \"input:step_counter\",\n /**\n * The key of the current input info\n */\n CURRENT_INPUT_INFO_MEMORY_KEY: \"input:info\",\n /**\n * The key of the characters memory\n */\n CHARACTER_CATEGORY_KEY: \"character\",\n /**\n * This variable is used to add the next dialog text into the current dialog memory.\n * This value was added to introduce Ink Glue functionality https://github.com/inkle/ink/blob/master/Documentation/WritingWithInk.md#glue\n */\n ADD_NEXT_DIALOG_TEXT_INTO_THE_CURRENT_DIALOG_FLAG_KEY: \"___glue___\",\n /**\n * The key of a list of all labels that have been opened during the progression of the steps.\n */\n OPENED_LABELS_COUNTER_KEY: \"label:opened\",\n /**\n * The key of a list of all choices that have been made during the progression of the steps.\n */\n ALL_CHOICES_MADE_KEY: \"choices:made\",\n /**\n * The key of the current step times counter.\n * This value was added to introduce Ink Sequences, cycles and other alternatives https://github.com/inkle/ink/blob/master/Documentation/WritingWithInk.md#sequences-cycles-and-other-alternatives\n */\n CURRENT_STEP_TIMES_COUNTER_KEY: \"label:history\",\n /**\n * The key of the last dialogue step glued in the step memory\n */\n LAST_STEP_GLUED: \"glue:last_step\",\n};\n","export namespace logger {\n export const log = (message?: any, ...optionalParams: any[]) =>\n console.log(`[Pixi’VN] ${message}`, ...optionalParams);\n export const warn = (message?: any, ...optionalParams: any[]) =>\n console.warn(`[Pixi’VN] ${message}`, ...optionalParams);\n export const error = (message?: any, ...optionalParams: any[]) =>\n console.error(`[Pixi’VN] ${message}`, ...optionalParams);\n export const info = (message?: any, ...optionalParams: any[]) =>\n console.info(`[Pixi’VN] ${message}`, ...optionalParams);\n}\n","import { PixiError } from \"@drincs/pixi-vn/core\";\nimport { logger } from \"./log-utility\";\n\n/**\n * This function is used to create a deep copy of the element\n * @param element The element to be copied\n * @returns The copied element\n * @throws {PixiError} when the element is not JSON serializable (e.g. contains functions or class instances).\n */\nexport function createExportableElement<T>(element: T): T {\n try {\n if (typeof element === \"undefined\") {\n return element;\n }\n let elementString = JSON.stringify(element);\n return JSON.parse(elementString);\n } catch (e) {\n logger.error(\"Error creating exportable element\", element, e);\n throw new PixiError(\"not_json_serializable\", \"Error creating exportable element\");\n }\n}\n","/**\n * This function calculates the final volume of a sound by multiplying the media volume and the channel volume.\n * If one of the volumes is undefined, it returns the other volume. If both are undefined, it returns 1.\n * @param mediaVolume The volume of the media instance, which can be undefined.\n * @param channelVolume The volume of the audio channel, which can be undefined.\n * @returns The final volume of the sound, or 1 if both mediaVolume and channelVolume are undefined.\n */\nexport function calculateVolume(mediaVolume: number | undefined, channelVolume: number | undefined): number {\n if (mediaVolume === undefined && channelVolume === undefined) {\n return 1;\n } else if (channelVolume === undefined) {\n return mediaVolume!;\n } else if (mediaVolume === undefined) {\n return channelVolume;\n }\n // if mediaVolume is 0.5 and channelVolume is 0.5, the result should be 0.25\n // if mediaVolume is 0.7 and channelVolume is 0.5, the result should be 0.35\n // if mediaVolume is 0.5 and channelVolume is 0.7, the result should be 0.35\n return mediaVolume * channelVolume;\n}\n","import AudioChannelInterface from \"./interfaces/AudioChannelInterface\";\nimport IMediaInstance from \"./interfaces/IMediaInstance\";\nimport { SoundPlayOptions } from \"./interfaces/SoundOptions\";\n\nexport default class SoundManagerStatic {\n private constructor() {}\n static mediaInstances: {\n [alias: string]: {\n channelAlias: string;\n soundAlias: string;\n instance: IMediaInstance;\n stepCounter: number;\n options: SoundPlayOptions;\n };\n } = {};\n static channels: { [alias: string]: AudioChannelInterface } = {};\n static delayTimeoutInstances: [number | NodeJS.Timeout, string][] = [];\n}\n","import { IMediaInstance } from \"@pixi/sound\";\nimport SoundManagerStatic from \"../SoundManagerStatic\";\nimport type AudioChannel from \"../classes/AudioChannel\";\nimport { calculateVolume } from \"./channel-utility\";\n\nexport function proxyMedia(mediaAlias: string, media: IMediaInstance, channel: AudioChannel): IMediaInstance {\n return new Proxy(media, {\n get(target, prop, receiver) {\n switch (prop) {\n case \"volume\":\n case \"muted\": {\n const entry = SoundManagerStatic.mediaInstances[mediaAlias];\n if (entry) {\n return entry.options[prop as keyof typeof entry.options];\n }\n return Reflect.get(target, prop, receiver);\n }\n case \"paused\":\n default:\n return Reflect.get(target, prop, receiver);\n }\n },\n set(target, prop, value, receiver) {\n if (mediaAlias in SoundManagerStatic.mediaInstances) {\n switch (prop) {\n case \"volume\":\n SoundManagerStatic.mediaInstances[mediaAlias].options[prop] = value;\n value = calculateVolume(value, channel.channelOptions.volume);\n return Reflect.set(target, prop, value, receiver);\n case \"muted\":\n SoundManagerStatic.mediaInstances[mediaAlias].options[prop] = value;\n if (channel.channelOptions.muted) {\n return Reflect.set(target, prop, true, receiver);\n } else {\n return Reflect.set(target, prop, value, receiver);\n }\n case \"loop\":\n case \"delay\":\n case \"end\":\n case \"filters\":\n case \"singleInstance\":\n case \"speed\":\n case \"sprite\":\n case \"start\":\n SoundManagerStatic.mediaInstances[mediaAlias].options[prop] = value;\n default:\n return Reflect.set(target, prop, value, receiver);\n }\n }\n return Reflect.set(target, prop, value, receiver);\n },\n });\n}\n","import { GameUnifier } from \"@drincs/pixi-vn/core\";\nimport { sound } from \"@pixi/sound\";\nimport { calculateVolume } from \"../functions/channel-utility\";\nimport { proxyMedia } from \"../functions/proxy-utility\";\nimport AudioChannelInterface from \"../interfaces/AudioChannelInterface\";\nimport IMediaInstance from \"../interfaces/IMediaInstance\";\nimport { ChannelOptions, SoundPlayOptions } from \"../interfaces/SoundOptions\";\nimport SoundManagerStatic from \"../SoundManagerStatic\";\n\nexport default class AudioChannel implements AudioChannelInterface {\n constructor(\n readonly alias: string,\n readonly channelOptions: ChannelOptions = {},\n ) {}\n async play(alias: string, options?: SoundPlayOptions): Promise<IMediaInstance>;\n async play(mediaAlias: string, soundAlias: string, options?: SoundPlayOptions): Promise<IMediaInstance>;\n async play(\n aliasOrMediaAlias: string,\n soundAliasOrOptions?: string | SoundPlayOptions,\n options?: SoundPlayOptions,\n ): Promise<IMediaInstance> {\n let mediaAlias: string;\n let soundAlias: string;\n if (typeof soundAliasOrOptions === \"string\") {\n mediaAlias = aliasOrMediaAlias;\n soundAlias = soundAliasOrOptions;\n } else {\n mediaAlias = aliasOrMediaAlias;\n soundAlias = aliasOrMediaAlias;\n options = soundAliasOrOptions;\n }\n if (mediaAlias in SoundManagerStatic.mediaInstances) {\n const oldMedia = SoundManagerStatic.mediaInstances[mediaAlias];\n oldMedia.instance.stop();\n options = {\n ...oldMedia.options,\n ...options,\n };\n }\n const media = proxyMedia(\n mediaAlias,\n await sound.play(soundAlias, {\n ...(options ?? {}),\n filters: [...(this.channelOptions.filters || []), ...(options?.filters || [])],\n muted: Boolean(this.channelOptions.muted) || Boolean(options?.muted),\n volume: calculateVolume(options?.volume, this.channelOptions.volume),\n }),\n this,\n );\n if (options?.delay) {\n media.paused = true;\n const timeoutId = setTimeout(() => {\n media.paused = false;\n SoundManagerStatic.delayTimeoutInstances = SoundManagerStatic.delayTimeoutInstances.filter(\n (item) => item[0] !== timeoutId,\n );\n }, options.delay * 1000);\n SoundManagerStatic.delayTimeoutInstances.push([timeoutId, mediaAlias]);\n }\n SoundManagerStatic.mediaInstances[mediaAlias] = {\n channelAlias: this.alias,\n soundAlias: soundAlias,\n instance: media,\n stepCounter: GameUnifier.stepCounter,\n options: {\n volume: options?.volume ?? 1,\n muted: options?.muted ?? false,\n loop: options?.loop ?? false,\n ...(options ?? {}),\n },\n };\n media.on(\"end\", () => {\n delete SoundManagerStatic.mediaInstances[mediaAlias];\n });\n return media;\n }\n private updateMediaVolume() {\n for (const mediaId in SoundManagerStatic.mediaInstances) {\n const mediaInstance = SoundManagerStatic.mediaInstances[mediaId];\n if (mediaInstance.channelAlias === this.alias) {\n const mediaVolume = mediaInstance.options.volume ?? 1;\n mediaInstance.instance.volume = mediaVolume;\n }\n }\n }\n get volume(): number {\n return this.channelOptions.volume ?? 1;\n }\n set volume(value: number) {\n this.channelOptions.volume = value;\n this.updateMediaVolume();\n }\n private updateMediaMuted() {\n for (const mediaId in SoundManagerStatic.mediaInstances) {\n const mediaInstance = SoundManagerStatic.mediaInstances[mediaId];\n if (mediaInstance.channelAlias === this.alias) {\n const mediaMuted = mediaInstance.options.muted ?? false;\n // Apply only the per-media muted state; the proxy is responsible for\n // enforcing channel-level muting without overwriting per-media options.\n mediaInstance.instance.muted = mediaMuted;\n }\n }\n }\n get muted(): boolean {\n return this.channelOptions.muted ?? false;\n }\n set muted(value: boolean) {\n this.channelOptions.muted = value;\n this.updateMediaMuted();\n }\n toggleMuteAll(): boolean {\n this.muted = !this.muted;\n return this.muted;\n }\n get mediaInstances(): IMediaInstance[] {\n return Object.values(SoundManagerStatic.mediaInstances).reduce((instances: IMediaInstance[], mediaInstance) => {\n if (mediaInstance.channelAlias === this.alias) {\n instances.push(mediaInstance.instance);\n }\n return instances;\n }, []);\n }\n get background(): boolean {\n return this.channelOptions.background || false;\n }\n stopAll() {\n for (const mediaAlias in SoundManagerStatic.mediaInstances) {\n const mediaInstance = SoundManagerStatic.mediaInstances[mediaAlias];\n if (mediaInstance.channelAlias === this.alias) {\n mediaInstance.instance.stop();\n delete SoundManagerStatic.mediaInstances[mediaAlias];\n }\n }\n return this;\n }\n pauseAll() {\n for (const mediaId in SoundManagerStatic.mediaInstances) {\n const mediaInstance = SoundManagerStatic.mediaInstances[mediaId];\n if (mediaInstance.channelAlias === this.alias && !mediaInstance.instance.paused) {\n mediaInstance.instance.paused = true;\n }\n }\n return this;\n }\n resumeAll(): this {\n for (const mediaId in SoundManagerStatic.mediaInstances) {\n const mediaInstance = SoundManagerStatic.mediaInstances[mediaId];\n if (mediaInstance.channelAlias === this.alias && mediaInstance.instance.paused) {\n mediaInstance.instance.paused = false;\n }\n }\n return this;\n }\n}\n","import { Filter, filters } from \"@pixi/sound\";\nimport { logger } from \"../../utils/log-utility\";\nimport SoundFilterMemory from \"../types/SoundFilterMemory\";\n\nexport function FilterMemoryToFilter(filter: SoundFilterMemory[]): Filter[] {\n let res: Filter[] = [];\n for (let f of filter) {\n if (f.type === \"TelephoneFilter\") {\n res.push(new filters.TelephoneFilter());\n } else if (f.type === \"StreamFilter\") {\n res.push(new filters.StreamFilter());\n } else if (f.type === \"StereoFilter\") {\n res.push(new filters.StereoFilter(f.pan));\n } else if (f.type === \"ReverbFilter\") {\n res.push(new filters.ReverbFilter(f.seconds, f.decay, f.reverse));\n } else if (f.type === \"MonoFilter\") {\n res.push(new filters.MonoFilter());\n } else if (f.type === \"EqualizerFilter\") {\n res.push(\n new filters.EqualizerFilter(f.f32, f.f64, f.f125, f.f250, f.f500, f.f1k, f.f2k, f.f4k, f.f8k, f.f16k)\n );\n } else if (f.type === \"DistortionFilter\") {\n res.push(new filters.DistortionFilter(f.amount));\n } else {\n logger.error(\"Unknown sound filter type\");\n }\n }\n return res;\n}\n\nexport function FilterToFilterMemory(filter?: Filter[]): SoundFilterMemory[] | undefined {\n if (!filter) return undefined;\n let res: SoundFilterMemory[] = [];\n for (let f of filter) {\n if (f instanceof filters.TelephoneFilter) {\n res.push({\n type: \"TelephoneFilter\",\n });\n } else if (f instanceof filters.StreamFilter) {\n res.push({\n type: \"StreamFilter\",\n });\n } else if (f instanceof filters.StereoFilter) {\n res.push({\n type: \"StereoFilter\",\n pan: f.pan,\n });\n } else if (f instanceof filters.ReverbFilter) {\n res.push({\n type: \"ReverbFilter\",\n seconds: f.seconds,\n decay: f.decay,\n reverse: f.reverse,\n });\n } else if (f instanceof filters.MonoFilter) {\n res.push({\n type: \"MonoFilter\",\n });\n } else if (f instanceof filters.EqualizerFilter) {\n res.push({\n type: \"EqualizerFilter\",\n f32: f.f32,\n f64: f.f64,\n f125: f.f125,\n f250: f.f250,\n f500: f.f500,\n f1k: f.f1k,\n f2k: f.f2k,\n f4k: f.f4k,\n f8k: f.f8k,\n f16k: f.f16k,\n });\n } else if (f instanceof filters.DistortionFilter) {\n res.push({\n type: \"DistortionFilter\",\n amount: f.amount,\n });\n } else {\n logger.error(\"Unknown sound filter type\");\n }\n }\n return res;\n}\n","import { GameUnifier } from \"@drincs/pixi-vn/core\";\nimport { default as PIXI } from \"@drincs/pixi-vn/pixi.js\";\nimport { Filter, filters, IMediaContext, Sound, sound } from \"@pixi/sound\";\nimport { GENERAL_CHANNEL } from \"../constants\";\nimport { createExportableElement } from \"../utils\";\nimport { logger } from \"../utils/log-utility\";\nimport AudioChannel from \"./classes/AudioChannel\";\nimport { FilterMemoryToFilter, FilterToFilterMemory } from \"./functions/sound-utility\";\nimport AudioChannelInterface from \"./interfaces/AudioChannelInterface\";\nimport IMediaInstance from \"./interfaces/IMediaInstance\";\nimport SoundGameState from \"./interfaces/SoundGameState\";\nimport SoundManagerInterface from \"./interfaces/SoundManagerInterface\";\nimport SoundOptions, { ChannelOptions, SoundPlayOptions, SoundPlayOptionsWithChannel } from \"./interfaces/SoundOptions\";\nimport SoundManagerStatic from \"./SoundManagerStatic\";\nimport SoundFilterMemory from \"./types/SoundFilterMemory\";\n\nexport default class SoundManager implements SoundManagerInterface {\n get context(): IMediaContext {\n return sound.context;\n }\n get filtersAll(): Filter[] {\n return sound.filtersAll;\n }\n set filtersAll(filtersAll: Filter[]) {\n sound.filtersAll = filtersAll.filter((f) => {\n return !(f instanceof filters.Filter);\n });\n }\n get supported(): boolean {\n return sound.supported;\n }\n\n _defaultChannelAlias = GENERAL_CHANNEL;\n get defaultChannelAlias(): string {\n return this._defaultChannelAlias;\n }\n set defaultChannelAlias(alias: string) {\n this._defaultChannelAlias = alias;\n }\n\n add(alias: string, sourceOptions: string) {\n return sound.add(alias, sourceOptions);\n }\n async edit(alias: string, options: SoundOptions): Promise<void> {\n let s = sound.find(alias);\n if (!s) {\n await this.load(alias);\n s = sound.find(alias);\n if (!s) {\n logger.error(`Sound with alias ${alias} not found after loading.`);\n return;\n }\n }\n s.options = options;\n }\n get useLegacy(): boolean {\n return sound.useLegacy;\n }\n set useLegacy(legacy: boolean) {\n sound.useLegacy = legacy;\n }\n get disableAutoPause(): boolean {\n return sound.disableAutoPause;\n }\n set disableAutoPause(autoPause: boolean) {\n sound.disableAutoPause = autoPause;\n }\n get volumeAll(): number {\n return sound.volumeAll;\n }\n set volumeAll(volume: number) {\n sound.volumeAll = volume;\n }\n get speedAll(): number {\n return sound.speedAll;\n }\n set speedAll(speed: number) {\n sound.speedAll = speed;\n }\n pauseAll(): this {\n for (const mediaId in SoundManagerStatic.mediaInstances) {\n const mediaInstance = SoundManagerStatic.mediaInstances[mediaId];\n if (!mediaInstance.instance.paused) {\n mediaInstance.instance.paused = true;\n }\n }\n return this;\n }\n resumeAll(): this {\n for (const mediaId in SoundManagerStatic.mediaInstances) {\n const mediaInstance = SoundManagerStatic.mediaInstances[mediaId];\n if (mediaInstance.instance.paused) {\n mediaInstance.instance.paused = false;\n }\n }\n return this;\n }\n toggleMuteAll(): boolean {\n return sound.toggleMuteAll();\n }\n muteAll(): this {\n sound.muteAll();\n return this;\n }\n unmuteAll(): this {\n sound.unmuteAll();\n return this;\n }\n stopAll(): this {\n SoundManagerStatic.mediaInstances = {};\n sound.stopAll();\n return this;\n }\n isPlaying(): boolean {\n return sound.isPlaying();\n }\n async play(alias: string, options?: SoundPlayOptionsWithChannel): Promise<IMediaInstance>;\n async play(mediaAlias: string, soundAlias: string, options?: SoundPlayOptionsWithChannel): Promise<IMediaInstance>;\n async play(\n aliasOrMediaAlias: string,\n soundAliasOrOptions?: string | SoundPlayOptionsWithChannel,\n paramOptions?: SoundPlayOptionsWithChannel,\n ): Promise<IMediaInstance> {\n let mediaAlias: string;\n let soundAlias: string;\n if (typeof soundAliasOrOptions === \"string\") {\n mediaAlias = aliasOrMediaAlias;\n soundAlias = soundAliasOrOptions;\n } else {\n mediaAlias = aliasOrMediaAlias;\n soundAlias = aliasOrMediaAlias;\n paramOptions = soundAliasOrOptions;\n }\n const { channel = this.defaultChannelAlias, ...options } = paramOptions ?? {};\n return await this.findChannel(channel).play(mediaAlias, soundAlias, options);\n }\n find(alias: string): IMediaInstance | undefined {\n return SoundManagerStatic.mediaInstances[alias]?.instance;\n }\n stop(alias: string): void {\n const mediaInstance = this.find(alias);\n if (mediaInstance) {\n mediaInstance.stop();\n delete SoundManagerStatic.mediaInstances[alias];\n } else {\n logger.warn(`No media instance found with alias ${alias} to stop.`);\n }\n }\n pause(alias: string): IMediaInstance | undefined {\n const mediaInstance = this.find(alias);\n if (!mediaInstance) {\n logger.warn(`No media instance found with alias ${alias} to pause.`);\n return;\n }\n mediaInstance.paused = true;\n return mediaInstance;\n }\n resume(alias: string): IMediaInstance | undefined {\n const mediaInstance = this.find(alias);\n if (!mediaInstance) {\n logger.warn(`No media instance found with alias ${alias} to resume.`);\n return;\n }\n mediaInstance.paused = false;\n return mediaInstance;\n }\n duration(alias: string): number {\n return sound.duration(alias);\n }\n async load(alias: string | string[]): Promise<void> {\n await PIXI.Assets.load(alias);\n if (typeof alias === \"string\") {\n alias = [alias];\n }\n alias.forEach((alias) => {\n const item = PIXI.Assets.get<Sound>(alias);\n if (!sound.exists(alias)) sound.add(alias, item);\n });\n }\n backgroundLoad(alias: string | string[]): Promise<void> {\n const promise = PIXI.Assets.backgroundLoad(alias);\n\n promise.then(() => {\n if (typeof alias === \"string\") {\n alias = [alias];\n }\n alias.forEach((alias) => {\n const item = PIXI.Assets.get<Sound>(alias);\n if (!sound.exists(alias)) sound.add(alias, item);\n });\n });\n return promise;\n }\n backgroundLoadBundle(alias: string): Promise<void> {\n const promise = PIXI.Assets.backgroundLoadBundle(alias);\n promise.then(async () => {\n try {\n const assets = await PIXI.Assets.loadBundle(alias);\n for (let key in assets) {\n const item = assets[key];\n if (item instanceof Sound) {\n if (!sound.exists(key)) sound.add(key, item);\n }\n }\n } catch (e) {\n logger.error(\"Error loading sound bundle\", e);\n }\n });\n return promise;\n }\n\n clear() {\n this.stopAll();\n }\n\n /* Channel Methods */\n\n addChannel(alias: string | string[], options: ChannelOptions = {}): AudioChannelInterface | undefined {\n if (typeof alias !== \"string\") {\n alias.forEach((a) => {\n const perChannelOptions: ChannelOptions = {\n ...options,\n filters: options.filters ? [...options.filters] : options.filters,\n };\n this.addChannel(a, perChannelOptions);\n });\n return;\n }\n if (SoundManagerStatic.channels[alias]) {\n logger.warn(`Channel with alias ${alias} already exists.`);\n return;\n }\n const channel = new AudioChannel(alias, options);\n SoundManagerStatic.channels[alias] = channel;\n return channel;\n }\n\n findChannel(alias: string): AudioChannelInterface {\n const channel = SoundManagerStatic.channels[alias];\n if (!channel) {\n return this.addChannel(alias) as AudioChannelInterface;\n }\n return channel;\n }\n\n get channels(): AudioChannelInterface[] {\n return Object.values(SoundManagerStatic.channels);\n }\n\n /* Export and Import