# Class: SoundManager

## Phaser. SoundManager

Phaser Sound Manager.

#### new SoundManager(game)

  Sound Manager constructor. The Sound Manager is responsible for playing back audio via either the Legacy HTML Audio tag or via Web Audio if the browser supports it. Note: On Firefox 25+ on Linux if you have media.gstreamer disabled in about:config then it cannot play back mp3 or m4a files. The audio file type and the encoding of those files are extremely important. Not all browsers can play all audio formats. There is a good guide to what's supported here: http://hpr.dogphilosophy.net/test/

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `game` | Phaser.Game | reference to the current game instance.

  Source:
    - sound/SoundManager.js, line 19

### Members

#### channels

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `channels` | number | The number of audio channels to use in playback.

  Default Value:
    - 32
  Source:
    - sound/SoundManager.js, line 105

#### connectToMaster

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `connectToMaster` | boolean | Used in conjunction with Sound.externalNode this allows you to stop a Sound node being connected to the SoundManager master gain node.

  Default Value:
    - true
  Source:
    - sound/SoundManager.js, line 93

#### context

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `context` | AudioContext | The AudioContext being used for playback.

  Default Value:
    - null
  Source:
    - sound/SoundManager.js, line 69

#### game

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `game` | Phaser.Game | Local reference to game.

  Source:
    - sound/SoundManager.js, line 24

#### mute

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `mute` | boolean | Gets or sets the muted state of the SoundManager. This effects all sounds in the game.

  Source:
    - sound/SoundManager.js, line 510

#### noAudio

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `noAudio` | boolean | Has audio been disabled via the PhaserGlobal object? Useful if you need to use a 3rd party audio library instead.

  Default Value:
    - false
  Source:
    - sound/SoundManager.js, line 87

#### onSoundDecode

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `onSoundDecode` | Phaser.Signal | The event dispatched when a sound decodes (typically only for mp3 files)

  Source:
    - sound/SoundManager.js, line 29

#### touchLocked

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `touchLocked` | boolean | true if the audio system is currently locked awaiting a touch event.

  Default Value:
    - false
  Source:
    - sound/SoundManager.js, line 99

#### <readonly> usingAudioTag

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `usingAudioTag` | boolean | true if the sound is being played via the Audio tag.

  Source:
    - sound/SoundManager.js, line 81

#### <readonly> usingWebAudio

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `usingWebAudio` | boolean | true if this sound is being played with Web Audio.

  Source:
    - sound/SoundManager.js, line 75

#### volume

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `volume` | number | Gets or sets the global volume of the SoundManager, a value between 0 and 1.

  Source:
    - sound/SoundManager.js, line 550

### Methods

#### add(key, volume, loop, connect) → {Phaser.Sound}

  Adds a new Sound into the SoundManager.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `key` | string |  |  | Asset key for the sound.
  `volume` | number | <optional> | 1 | Default value for the volume.
  `loop` | boolean | <optional> | false | Whether or not the sound will loop.
  `connect` | boolean | <optional> | true | Controls if the created Sound object will connect to the master gainNode of the SoundManager when running under WebAudio.

  Source:
    - sound/SoundManager.js, line 348

  ##### Returns:

  The new sound instance.

  Type
    Phaser.Sound

#### <protected> boot()

  Initialises the sound manager.

  Source:
    - sound/SoundManager.js, line 111

#### decode(key, sound)

  Decode a sound by its assets key.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `key` | string |  | Assets key of the sound to be decoded.
  `sound` | Phaser.Sound | <optional> | Its buffer will be set to decoded data.

  Source:
    - sound/SoundManager.js, line 287

#### pauseAll()

  Pauses all the sounds in the game.

  Source:
    - sound/SoundManager.js, line 253

#### play(key, volume, loop) → {Phaser.Sound}

  Adds a new Sound into the SoundManager and starts it playing.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `key` | string |  |  | Asset key for the sound.
  `volume` | number | <optional> | 1 | Default value for the volume.
  `loop` | boolean | <optional> | false | Whether or not the sound will loop.

  Source:
    - sound/SoundManager.js, line 424

  ##### Returns:

  The new sound instance.

  Type
    Phaser.Sound

#### remove(sound) → {boolean}

  Removes a Sound from the SoundManager. The removed Sound is destroyed before removal.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `sound` | Phaser.Sound | The sound object to remove.

  Source:
    - sound/SoundManager.js, line 372

  ##### Returns:

  True if the sound was removed successfully, otherwise false.

  Type
    boolean

#### removeByKey(key) → {number}

  Removes all Sounds from the SoundManager that have an asset key matching the given value. The removed Sounds are destroyed before removal.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `key` | string | The key to match when removing sound objects.

  Source:
    - sound/SoundManager.js, line 397

  ##### Returns:

  The number of matching sound objects that were removed.

  Type
    number

#### resumeAll()

  Resumes every sound in the game.

  Source:
    - sound/SoundManager.js, line 270

#### stopAll()

  Stops all the sounds in the game.

  Source:
    - sound/SoundManager.js, line 236

#### unlock()

  Enables the audio, usually after the first touch.

  Source:
    - sound/SoundManager.js, line 202

#### update()

  Updates every sound in the game.

  Source:
    - sound/SoundManager.js, line 320