Home Reference Source
import AudioSystem from 'oxygen-core/systems/AudioSystem.js'
public class | source

AudioSystem

Extends:

System → AudioSystem

System used to manage audio.

Example:

const system = new AudioSystem();

Static Method Summary

Static Public Methods
public static

Constructor Summary

Public Constructor
public

Constructor.

Member Summary

Public Members
public get

context: AudioContext

public get

Method Summary

Public Methods
public

Destructor (dispose internal resources).

public

getMusic(id: string): HTMLAudioElement | null

Gets music instance.

public

getSound(id: string): AudioBufferSourceNode | null

Gets given sound instance.

public

Tells if given music is registered.

public

Tells if there is registered given sound.

public

playMusic(id: string): HTMLAudioElement

Play given music.

public

playSound(id: string, autoDestination: boolean): AudioBufferSourceNode

Play given sound.

public

registerMusic(id: string, audio: HTMLAudioElement)

Register new music.

public

registerSound(id: string, data: ArrayBuffer | AudioBuffer)

Register new sound.

public

Unregister existing music.

public

Unregister existing sound.

public

Produces promise that resolves when sound is decoded into memory (decoding is done asynchronously).

Inherited Summary

From class System
public static get
public static get

systems: *

public static

Dispose and remove all registered systems.

public static

get(typename: string): System | null

Returns system instance of given type name.

public static

register(typename: string, system: System): System

Register new system instance under given name.

public static

unregister(typename: string): System

Unregister given system.

public

Destructor (disposes all internal resources).

public

Event called after system gets registered.

public

Event called before system gets unregistered.

Static Public Methods

public static createAudioContext(): * source

Return:

*

Public Constructors

public constructor() source

Constructor.

Public Members

public get context: AudioContext source

public get events: Events source

Override:

System#events

Public Methods

public dispose() source

Destructor (dispose internal resources).

Override:

System#dispose

Example:

system.dispose();
system = null;

public getMusic(id: string): HTMLAudioElement | null source

Gets music instance.

Params:

NameTypeAttributeDescription
id string

Music id.

Return:

HTMLAudioElement | null

Music instance if found, null otherwise.

public getSound(id: string): AudioBufferSourceNode | null source

Gets given sound instance.

Params:

NameTypeAttributeDescription
id string

Sound id.

Return:

AudioBufferSourceNode | null

Sound audio buffer source node if found or null if not.

public hasMusic(id: string): boolean source

Tells if given music is registered.

Params:

NameTypeAttributeDescription
id string

Music id.

Return:

boolean

True if music exists, false otherwise.

public hasSound(id: string): boolean source

Tells if there is registered given sound.

Params:

NameTypeAttributeDescription
id string

Sound id.

Return:

boolean

True if sound exists, false otherwise.

public playMusic(id: string): HTMLAudioElement source

Play given music. Mostly you will be able to play only one music at the same time.

Params:

NameTypeAttributeDescription
id string

Music id.

Return:

HTMLAudioElement

Music instance.

public playSound(id: string, autoDestination: boolean): AudioBufferSourceNode source

Play given sound.

Params:

NameTypeAttributeDescription
id string

Sound id.

autoDestination boolean

Tells if sound should be automaticaly bound with context destination.

Return:

AudioBufferSourceNode

Sound audio buffer source node.

public registerMusic(id: string, audio: HTMLAudioElement) source

Register new music.

Params:

NameTypeAttributeDescription
id string

Music id.

audio HTMLAudioElement

HTML audio element.

Example:

system.registerMusic('ambient', document.getElementById('ambient'));

public registerSound(id: string, data: ArrayBuffer | AudioBuffer) source

Register new sound.

Params:

NameTypeAttributeDescription
id string

Sound id.

data ArrayBuffer | AudioBuffer

Sound data.

public unregisterMusic(id: string) source

Unregister existing music.

Params:

NameTypeAttributeDescription
id string

Music id.

public unregisterSound(id: string) source

Unregister existing sound.

Params:

NameTypeAttributeDescription
id string

Sound id.

public whenSoundIsReady(id: string): Promise source

Produces promise that resolves when sound is decoded into memory (decoding is done asynchronously).

Params:

NameTypeAttributeDescription
id string

Sound id.

Return:

Promise

Produced promise.

Example:

system.whenSoundIsReady('fire').then(() => system.playSound('fire'));