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

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

eventDispatcher: EventDispatcher<any>

Direct access to the game object event dispatcher.

logger: Util.Logger = ...

Accessors

  • 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>

  • Emits a new event

    Parameters

    • eventName: string

      Name of the event to emit

    • eventObject: any

      Data associated with this event

    Returns void

  • 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>

  • Alias for removeEventListener. If only the eventName is specified it will remove all handlers registered for that specific event. If the eventName and the handler instance are specified only that handler will be removed.

    Parameters

    • eventName: string

      Name of the event to listen for

    • Optional handler: ((event: any) => void)

      Event handler for the thrown event

        • (event: any): void
        • Parameters

          • event: any

          Returns void

    Returns void

  • Alias for addEventListener. You can listen for a variety of events off of the engine; see the events section below for a complete list.

    Parameters

    • eventName: string

      Name of the event to listen for

    • handler: ((event: any) => void)

      Event handler for the thrown event

        • (event: any): void
        • Parameters

          • event: any

          Returns void

    Returns void

  • Once listens to an event one time, then unsubscribes from that event

    Parameters

    • eventName: string

      The name of the event to subscribe to once

    • handler: ((event: any) => void)

      The handler of the event that will be auto unsubscribed

        • (event: any): void
        • Parameters

          • event: any

          Returns void

    Returns void

  • 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