The Sound object allows games built in Excalibur to load audio components, from soundtracks to sound effects. Sound is an Loadable which means it can be passed to a Loader to pre-load before a game or level.

Hierarchy

  • Sound

Implements

Constructors

  • Parameters

    • Rest ...paths: string[]

      A list of audio sources (clip.wav, clip.mp3, clip.ogg) for this audio clip. This is done for browser compatibility.

    Returns Sound

Properties

data: AudioBuffer

Data associated with a loadable

events: EventEmitter<SoundEvents> = ...
logger: Util.Logger = ...

Accessors

  • get bustCache(): boolean
  • Should excalibur add a cache busting querystring? By default false. Must be set before loading

    Returns boolean

  • set bustCache(val: boolean): void
  • Parameters

    • val: boolean

    Returns void

  • get duration(): number
  • Get the duration that this audio should play. If unset the total natural playback duration will be used.

    Returns number

  • set duration(duration: number): void
  • Set the duration that this audio should play. If unset the total natural playback duration will be used.

    Note: if you seek to a specific point the duration will start from that point, for example

    If you have a 10 second clip, seek to 5 seconds, then set the duration to 2, it will play the clip from 5-7 seconds.

    Parameters

    • duration: number

    Returns void

  • get loop(): boolean
  • Whether the audio should loop (repeat forever)

    Returns boolean

  • set loop(value: boolean): void
  • Indicates whether the clip should loop when complete

    Parameters

    • value: boolean

      Set the looping flag

    Returns void

  • get playbackRate(): number
  • Set the playbackRate, default is 1.0 at normal speed. For example 2.0 is double speed, and 0.5 is half speed.

    Returns number

  • set playbackRate(playbackRate: number): void
  • Set the playbackRate, default is 1.0 at normal speed. For example 2.0 is double speed, and 0.5 is half speed.

    Parameters

    • playbackRate: number

    Returns void

Methods

  • Parameters

    • data: ArrayBuffer

    Returns Promise<AudioBuffer>

  • Return the current playback time of the playing track in seconds from the start.

    Optionally specify the track to query if multiple are playing at once.

    Parameters

    • trackId: number = 0

    Returns number

  • Returns how many instances of the sound are currently playing

    Returns number

  • Begins loading the resource and returns a promise to be resolved on completion

    Returns Promise<AudioBuffer>

  • Play the sound, returns a promise that resolves when the sound is done playing An optional volume argument can be passed in to play the sound. Max volume is 1.0

    Parameters

    • Optional volume: number

    Returns Promise<boolean>

  • Seek to a position (in seconds) in the audio

    Parameters

    • position: number
    • trackId: number = 0

    Returns void

  • Stop the sound if it is currently playing and rewind the track. If the sound is not playing, rewinds the track.

    Returns void