Navigation
These archived docs are for Phaser 2.6.1 Phaser 3 docs can be found on newdocs.phaser.io.
Phaser CE docs can be found on the Phaser CE Documentation site.

Constructor

Phaser. Sound

new Sound(game, key, volume, loop)

The Sound class constructor.

Parameters
Name Type Argument Default Description
game Phaser.Game

Reference to the current game instance.

key string

Asset key for the sound.

volume number <optional>
1

Default value for the volume, between 0 and 1.

loop boolean <optional>
false

Whether or not the sound will loop.

Source code: sound/Sound.js (Line 17)

Public Properties

allowMultiple : boolean

This will allow you to have multiple instances of this Sound playing at once. This is only useful when running under Web Audio, and we recommend you implement a local pooling system to not flood the sound channels.

Source code: sound/Sound.js (Line 144)

autoplay : boolean

Boolean indicating whether the sound should start automatically.

Source code: sound/Sound.js (Line 57)

context :AudioContext

Reference to the AudioContext instance.

Source code: sound/Sound.js (Line 52)

currentMarker : string

The string ID of the currently playing marker, if any.

Source code: sound/Sound.js (Line 121)

currentTime : number

The current time the sound is at.

Source code: sound/Sound.js (Line 73)

duration : number

The duration of the current sound marker in seconds.

Source code: sound/Sound.js (Line 78)

durationMS : number

The duration of the current sound marker in ms.

Source code: sound/Sound.js (Line 83)

externalNode : Object

If defined this Sound won't connect to the SoundManager master gain node, but will instead connect to externalNode.

Source code: sound/Sound.js (Line 160)

fadeTween : Phaser.Tween

The tween that fades the audio, set via Sound.fadeIn and Sound.fadeOut.

Source code: sound/Sound.js (Line 126)

gainNode : Object

The gain node in a Web Audio system.

Source code: sound/Sound.js (Line 170)

game : Phaser.Game

A reference to the currently running Game.

Source code: sound/Sound.js (Line 27)

[readonly] isDecoded : boolean

Returns true if the sound file has decoded.

Source code: sound/Sound.js (Line 1085)

[readonly] isDecoding : boolean

Returns true if the sound file is still decoding.

Source code: sound/Sound.js (Line 1072)

isPlaying : boolean

true if the sound is currently playing, otherwise false.

Source code: sound/Sound.js (Line 115)

key : string

Asset key for the sound.

Source code: sound/Sound.js (Line 37)

loop : boolean

Whether or not the sound or current sound marker will loop.

Source code: sound/Sound.js (Line 42)

markers : Object

The sound markers.

Source code: sound/Sound.js (Line 47)

masterGainNode : Object

The master gain node in a Web Audio system.

Source code: sound/Sound.js (Line 165)

mute : boolean

Gets or sets the muted state of this sound.

Source code: sound/Sound.js (Line 1098)

name : string

Name of the sound.

Source code: sound/Sound.js (Line 32)

onDecoded : Phaser.Signal

The onDecoded event is dispatched when the sound has finished decoding (typically for mp3 files)

Source code: sound/Sound.js (Line 220)

onFadeComplete : Phaser.Signal

The onFadeComplete event is dispatched when this sound finishes fading either in or out.

Source code: sound/Sound.js (Line 260)

onLoop : Phaser.Signal

The onLoop event is dispatched when this sound loops during playback.

Source code: sound/Sound.js (Line 240)

onMarkerComplete : Phaser.Signal

The onMarkerComplete event is dispatched when a marker within this sound completes playback.

Source code: sound/Sound.js (Line 255)

onMute : Phaser.Signal

The onMute event is dispatched when this sound is muted.

Source code: sound/Sound.js (Line 250)

onPause : Phaser.Signal

The onPause event is dispatched when this sound is paused.

Source code: sound/Sound.js (Line 230)

onPlay : Phaser.Signal

The onPlay event is dispatched each time this sound is played.

Source code: sound/Sound.js (Line 225)

onResume : Phaser.Signal

The onResume event is dispatched when this sound is resumed from a paused state.

Source code: sound/Sound.js (Line 235)

onStop : Phaser.Signal

The onStop event is dispatched when this sound stops playback.

Source code: sound/Sound.js (Line 245)

override : boolean

if true when you play this sound it will always start from the beginning.

Source code: sound/Sound.js (Line 138)

paused : boolean

true if the sound is paused, otherwise false.

Source code: sound/Sound.js (Line 99)

pausedPosition : number

The position the sound had reached when it was paused.

Source code: sound/Sound.js (Line 104)

pausedTime : number

The game time at which the sound was paused.

Source code: sound/Sound.js (Line 109)

[readonly] pendingPlayback : boolean

true if the sound file is pending playback

Source code: sound/Sound.js (Line 132)

position : number

The position of the current sound marker.

Source code: sound/Sound.js (Line 88)

startTime : number

The time the Sound starts at (typically 0 unless starting from a marker)

Source code: sound/Sound.js (Line 68)

stopTime : number

The time the sound stopped.

Source code: sound/Sound.js (Line 93)

totalDuration : number

The total duration of the sound in seconds.

Source code: sound/Sound.js (Line 62)

usingAudioTag : boolean

true if the sound is being played via the Audio tag.

Source code: sound/Sound.js (Line 155)

[readonly] usingWebAudio : boolean

true if this sound is being played with Web Audio.

Source code: sound/Sound.js (Line 150)

[readonly] volume : number

Gets or sets the volume of this sound, a value between 0 and 1.

Source code: sound/Sound.js (Line 1153)

Public Methods

addMarker(name, start, duration, volume, loop)

Adds a marker into the current Sound. A marker is represented by a unique key and a start time and duration. This allows you to bundle multiple sounds together into a single audio file and use markers to jump between them for playback.

Parameters
Name Type Argument Default Description
name string

A unique name for this marker, i.e. 'explosion', 'gunshot', etc.

start number

The start point of this marker in the audio file, given in seconds. 2.5 = 2500ms, 0.5 = 500ms, etc.

duration number <optional>
1

The duration of the marker in seconds. 2.5 = 2500ms, 0.5 = 500ms, etc.

volume number <optional>
1

The volume the sound will play back at, between 0 (silent) and 1 (full volume).

loop boolean <optional>
false

Sets if the sound will loop or not.

Source code: sound/Sound.js (Line 348)

destroy(remove)

Destroys this sound and all associated events and removes it from the SoundManager.

Parameters
Name Type Argument Default Description
remove boolean <optional>
true

If true this Sound is automatically removed from the SoundManager.

Source code: sound/Sound.js (Line 1033)

fadeIn(duration, loop, marker)

Starts this sound playing (or restarts it if already doing so) and sets the volume to zero. Then increases the volume from 0 to 1 over the duration specified.

At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, and the final volume (1) as the second parameter.

Parameters
Name Type Argument Default Description
duration number <optional>
1000

The time in milliseconds over which the Sound should fade in.

loop boolean <optional>
false

Should the Sound be set to loop? Note that this doesn't cause the fade to repeat.

marker string <optional>
(current marker)

The marker to start at; defaults to the current (last played) marker. To start playing from the beginning specify specify a marker of ''.

Source code: sound/Sound.js (Line 922)

fadeOut(duration)

Decreases the volume of this Sound from its current value to 0 over the duration specified. At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, and the final volume (0) as the second parameter.

Parameters
Name Type Argument Default Description
duration number <optional>
1000

The time in milliseconds over which the Sound should fade out.

Source code: sound/Sound.js (Line 950)

fadeTo(duration, volume)

Fades the volume of this Sound from its current value to the given volume over the duration specified. At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, and the final volume (volume) as the second parameter.

Parameters
Name Type Argument Default Description
duration number <optional>
1000

The time in milliseconds during which the Sound should fade out.

volume number <optional>

The volume which the Sound should fade to. This is a value between 0 and 1.

Source code: sound/Sound.js (Line 964)

loopFull(volume) → {Phaser.Sound}

Loops this entire sound. If you need to loop a section of it then use Sound.play and the marker and loop parameters.

Parameters
Name Type Argument Default Description
volume number <optional>
1

Volume of the sound you want to play. If none is given it will use the volume given to the Sound when it was created (which defaults to 1 if none was specified).

Returns

This sound instance.

Source code: sound/Sound.js (Line 492)

<internal> onEndedHandler()

Called automatically by the AudioContext when the sound stops playing. Doesn't get called if the sound is set to loop or is a section of an Audio Sprite.

Internal:
  • This member is internal (protected) and may be modified or removed in the future.
Source code: sound/Sound.js (Line 388)

pause()

Pauses the sound.

Source code: sound/Sound.js (Line 761)

play(marker, position, volume, loop, forceRestart) → {Phaser.Sound}

Play this sound, or a marked section of it.

Parameters
Name Type Argument Default Description
marker string <optional>
''

If you want to play a marker then give the key here, otherwise leave blank to play the full sound.

position number <optional>
0

The starting position to play the sound from - this is ignored if you provide a marker.

volume number <optional>
1

Volume of the sound you want to play. If none is given it will use the volume given to the Sound when it was created (which defaults to 1 if none was specified).

loop boolean <optional>
false

Loop when finished playing? If not using a marker / audio sprite the looping will be done via the WebAudio loop property, otherwise it's time based.

forceRestart boolean <optional>
true

If the sound is already playing you can set forceRestart to restart it from the beginning.

Returns

This sound instance.

Source code: sound/Sound.js (Line 505)

removeMarker(name)

Removes a marker from the sound.

Parameters
Name Type Description
name string

The key of the marker to remove.

Source code: sound/Sound.js (Line 377)

restart(marker, position, volume, loop)

Restart the sound, or a marked section of it.

Parameters
Name Type Argument Default Description
marker string <optional>
''

If you want to play a marker then give the key here, otherwise leave blank to play the full sound.

position number <optional>
0

The starting position to play the sound from - this is ignored if you provide a marker.

volume number <optional>
1

Volume of the sound you want to play.

loop boolean <optional>
false

Loop when it finished playing?

Source code: sound/Sound.js (Line 741)

resume()

Resumes the sound.

Source code: sound/Sound.js (Line 780)

<internal> soundHasUnlocked(key)

Called automatically when this sound is unlocked.

Parameters
Name Type Description
key string

The Phaser.Cache key of the sound file to check for decoding.

Internal:
  • This member is internal (protected) and may be modified or removed in the future.
Source code: sound/Sound.js (Line 332)

stop()

Stop playing this sound.

Source code: sound/Sound.js (Line 856)

<internal> update()

Called automatically by Phaser.SoundManager.

Internal:
  • This member is internal (protected) and may be modified or removed in the future.
Source code: sound/Sound.js (Line 404)

<internal> updateGlobalVolume(globalVolume)

Called automatically by SoundManager.volume.

Sets the volume of AudioTag Sounds as a percentage of the Global Volume.

You should not normally call this directly.

Parameters
Name Type Description
globalVolume float

The global SoundManager volume.

Internal:
  • This member is internal (protected) and may be modified or removed in the future.
Source code: sound/Sound.js (Line 1011)