new SoundManager(game)
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/
If you are reloading a Phaser Game on a page that never properly refreshes (such as in an AngularJS project) then you will quickly run out of AudioContext nodes. If this is the case create a global var called PhaserGlobal on the window object before creating the game. The active AudioContext will then be saved to window.PhaserGlobal.audioContext when the Phaser game is destroyed, and re-used when it starts again.
Parameters
Name | Type | Description |
---|---|---|
game |
Phaser.Game | Reference to the current game instance. |
- Source code: sound/SoundManager.js, line 21
Public Properties
-
channels : number
-
The number of audio channels to use in playback.
- Default Value
- 32
- Source code: sound/SoundManager.js, line 107
-
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 code: sound/SoundManager.js, line 95
-
context :AudioContext
-
The AudioContext being used for playback.
- Default Value
- null
- Source code: sound/SoundManager.js, line 71
-
game : Phaser.Game
-
Local reference to game.
- Source code: sound/SoundManager.js, line 26
-
mute : boolean
-
Gets or sets the muted state of the SoundManager. This effects all sounds in the game.
- Source code: sound/SoundManager.js, line 562
-
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 code: sound/SoundManager.js, line 89
-
onSoundDecode : Phaser.Signal
-
The event dispatched when a sound decodes (typically only for mp3 files)
- Source code: sound/SoundManager.js, line 31
-
touchLocked : boolean
-
true if the audio system is currently locked awaiting a touch event.
- Default Value
- false
- Source code: sound/SoundManager.js, line 101
-
[readonly] usingAudioTag : boolean
-
true if the sound is being played via the Audio tag.
- Source code: sound/SoundManager.js, line 83
-
[readonly] usingWebAudio : boolean
-
true if this sound is being played with Web Audio.
- Source code: sound/SoundManager.js, line 77
-
volume : number
-
Gets or sets the global volume of the SoundManager, a value between 0 and 1.
- Source code: sound/SoundManager.js, line 602
Public 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.
Returns
The new sound instance.
- Source code: sound/SoundManager.js, line 356
-
addSprite(key) → {Phaser.AudioSprite}
-
Adds a new AudioSprite into the SoundManager.
Parameters
Name Type Description key
string Asset key for the sound.
Returns
The new AudioSprite instance.
- Source code: sound/SoundManager.js, line 380
-
<internal> boot()
-
Initialises the sound manager.
- Internal:
- This member is internal (protected) and may be modified or removed in the future.
- Source code: sound/SoundManager.js, line 113
-
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 code: sound/SoundManager.js, line 295
-
destroy()
-
Stops all the sounds in the game, then destroys them and finally clears up any callbacks.
- Source code: sound/SoundManager.js, line 529
-
pauseAll()
-
Pauses all the sounds in the game.
- Source code: sound/SoundManager.js, line 261
-
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.
Returns
The new sound instance.
- Source code: sound/SoundManager.js, line 447
-
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.
Returns
boolean -True if the sound was removed successfully, otherwise false.
- Source code: sound/SoundManager.js, line 395
-
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.
Returns
number -The number of matching sound objects that were removed.
- Source code: sound/SoundManager.js, line 420
-
resumeAll()
-
Resumes every sound in the game.
- Source code: sound/SoundManager.js, line 278
-
stopAll()
-
Stops all the sounds in the game.
- Source code: sound/SoundManager.js, line 244
-
unlock()
-
Enables the audio, usually after the first touch.
- Source code: sound/SoundManager.js, line 210
-
update()
-
Updates every sound in the game.
- Source code: sound/SoundManager.js, line 328