• Public
  • Public/Protected
  • All

This represents the default audio engine used in babylon. It is responsible to play, synchronize and analyse sounds throughout the application.




  • AudioEngine




  • new AudioEngine(hostElement?: Nullable<HTMLElement>, audioContext?: Nullable<AudioContext>, audioDestination?: Nullable<AudioDestinationNode | MediaStreamAudioDestinationNode>): AudioEngine
  • Instantiates a new audio engine.

    There should be only one per page as some browsers restrict the number of audio contexts you can create.


    • Optional hostElement: Nullable<HTMLElement>

      defines the host element where to display the mute icon if necessary

    • Optional audioContext: Nullable<AudioContext>

      defines the audio context to be used by the audio engine

    • Optional audioDestination: Nullable<AudioDestinationNode | MediaStreamAudioDestinationNode>

      defines the audio destination node to be used by audio engine

    Returns AudioEngine


WarnedWebAudioUnsupported: boolean

Defines if Babylon should emit a warning if WebAudio is not supported.

canUseWebAudio: boolean

Gets whether the current host supports Web Audio and thus could create AudioContexts.

isMP3supported: boolean

Gets whether or not mp3 are supported by your browser.

isOGGsupported: boolean

Gets whether or not ogg are supported by your browser.

masterGain: GainNode

The master gain node defines the global audio volume of your audio engine.

onAudioLockedObservable: Observable<IAudioEngine>

Event raised when audio has been locked on the browser.

onAudioUnlockedObservable: Observable<IAudioEngine>

Event raised when audio has been unlocked on the browser.

unlocked: boolean

Gets whether audio has been unlocked on the device. Some Browsers have strong restrictions about Audio and won't autoplay unless a user interaction has happened.

useCustomUnlockedButton: boolean

Defines if the audio engine relies on a custom unlocked button. In this case, the embedded button will not be displayed.


  • get audioContext(): Nullable<AudioContext>
  • Gets the current AudioContext if available.

    Returns Nullable<AudioContext>


  • connectToAnalyser(analyser: Analyser): void
  • dispose(): void
  • Destroy and release the resources associated with the audio context.

    Returns void

  • getGlobalVolume(): number
  • Gets the global volume sets on the master gain.

    Returns number

    the global volume if set or -1 otherwise

  • lock(): void
  • Flags the audio engine in Locked state. This happens due to new browser policies preventing audio to autoplay.

    Returns void

  • setGlobalVolume(newVolume: number): void
  • Sets the global volume of your experience (sets on the master gain).


    • newVolume: number

      Defines the new global volume of the application

    Returns void

  • unlock(): void
  • Unlocks the audio engine once a user action has been done on the dom. This is helpful to resume play once browser policies have been satisfied.

    Returns void


  • Constructor
  • Property
  • Method
  • Inherited constructor
  • Inherited property
  • Inherited method
  • Property
  • Method
  • Static method