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:
- src/sound/Sound.js line 17
Members
-
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.
Type:
- boolean
- Source:
- src/sound/Sound.js line 144
-
autoplay : boolean
-
Whether the sound should start automatically.
Type:
- boolean
- Source:
- src/sound/Sound.js line 57
-
context : AudioContext
-
Reference to the AudioContext instance.
Type:
- AudioContext
- Source:
- src/sound/Sound.js line 52
-
currentMarker : string
-
The string ID of the currently playing marker, if any.
Type:
- string
- Source:
- src/sound/Sound.js line 121
-
currentTime : number
-
The current time of sound playback in ms.
Type:
- number
- Source:
- src/sound/Sound.js line 73
-
duration : number
-
The duration of the current sound marker in seconds.
Type:
- number
- Source:
- src/sound/Sound.js line 78
-
durationMS : number
-
The duration of the current sound marker in ms.
Type:
- number
- Source:
- src/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.
Type:
- object
- Source:
- src/sound/Sound.js line 167
-
fadeTween : Phaser.Tween
-
The tween that fades the audio, set via Sound.fadeIn and Sound.fadeOut.
Type:
- Source:
- src/sound/Sound.js line 126
-
gainNode : object
-
The gain node in a Web Audio system.
Type:
- object
- Source:
- src/sound/Sound.js line 177
-
game : Phaser.Game
-
A reference to the currently running Game.
Type:
- Source:
- src/sound/Sound.js line 27
-
<readonly> isDecoded : boolean
-
Returns true if the sound file has decoded.
Type:
- boolean
- Source:
- src/sound/Sound.js line 1165
-
<readonly> isDecoding : boolean
-
Returns true if the sound file is still decoding.
Type:
- boolean
- Source:
- src/sound/Sound.js line 1151
-
isPlaying : boolean
-
Whether the sound is currently playing.
Type:
- boolean
- Source:
- src/sound/Sound.js line 115
-
key : string
-
Asset key for the sound.
Type:
- string
- Source:
- src/sound/Sound.js line 37
-
loop : boolean
-
Whether or not the sound or current sound marker will loop.
Type:
- boolean
- Source:
- src/sound/Sound.js line 42
-
markers : object
-
The sound markers.
Type:
- object
- Source:
- src/sound/Sound.js line 47
-
masterGainNode : object
-
The master gain node in a Web Audio system.
Type:
- object
- Source:
- src/sound/Sound.js line 172
-
mute : boolean
-
Gets or sets the muted state of this sound.
Type:
- boolean
- Source:
- src/sound/Sound.js line 1179
-
name : string
-
Name of the sound.
Type:
- string
- Source:
- src/sound/Sound.js line 32
-
onDecoded : Phaser.Signal
-
The onDecoded event is dispatched when the sound has finished decoding (typically for mp3 files). It passes one argument, this sound.
Type:
- Source:
- src/sound/Sound.js line 257
-
onFadeComplete : Phaser.Signal
-
The onFadeComplete event is dispatched when this sound finishes fading either in or out. It passes two arguments: this sound and its current volume.
Type:
- Source:
- src/sound/Sound.js line 297
-
onLoop : Phaser.Signal
-
The onLoop event is dispatched when this sound loops during playback. It passes one argument, this sound.
Type:
- Source:
- src/sound/Sound.js line 277
-
onMarkerComplete : Phaser.Signal
-
The onMarkerComplete event is dispatched when a marker within this sound completes playback. It passes two arguments: the currentMarker and this sound.
Type:
- Source:
- src/sound/Sound.js line 292
-
onMute : Phaser.Signal
-
The onMute event is dispatched when this sound is muted. It passes one argument, this sound.
Type:
- Source:
- src/sound/Sound.js line 287
-
onPause : Phaser.Signal
-
The onPause event is dispatched when this sound is paused. It passes one argument, this sound.
Type:
- Source:
- src/sound/Sound.js line 267
-
onPlay : Phaser.Signal
-
The onPlay event is dispatched each time this sound is played (but not looped). It passes one argument, this sound.
Type:
- Source:
- src/sound/Sound.js line 262
-
onResume : Phaser.Signal
-
The onResume event is dispatched when this sound is resumed from a paused state. It passes one argument, this sound.
Type:
- Source:
- src/sound/Sound.js line 272
-
onStop : Phaser.Signal
-
The onStop event is dispatched when this sound stops playback or when a non-looping marker completes. It passes two arguments: this sound and any marker that was playing.
Type:
- Source:
- src/sound/Sound.js line 282
-
override : boolean
-
When playing this sound, always start from the beginning.
Type:
- boolean
- Source:
- src/sound/Sound.js line 138
-
paused : boolean
-
Whether the sound is paused.
Type:
- boolean
- Source:
- src/sound/Sound.js line 99
-
pausedPosition : number
-
The position the sound had reached when it was paused in ms.
Type:
- number
- Source:
- src/sound/Sound.js line 104
-
pausedTime : number
-
The clock time (ms) at which the sound was paused.
Type:
- number
- Source:
- src/sound/Sound.js line 109
-
<readonly> pendingPlayback : boolean
-
Playback is pending (delayed) because the audio isn't decoded or is touch-locked.
Type:
- boolean
- Source:
- src/sound/Sound.js line 132
-
playOnce : boolean
-
Marks the Sound for deletion from SoundManager after playing once. Useful for playing several identical sounds overlapping without flooding the sound channel
Type:
- boolean
- Source:
- src/sound/Sound.js line 150
-
position : number
-
The position of the current sound marker in seconds.
Type:
- number
- Source:
- src/sound/Sound.js line 88
-
startTime : number
-
The time the sound starts playing, in game-time coordinates (ms).
Type:
- number
- Source:
- src/sound/Sound.js line 68
-
stopTime : number
-
The time the sound stopped in ms.
Type:
- number
- Source:
- src/sound/Sound.js line 93
-
totalDuration : number
-
The total duration of the sound in seconds.
Type:
- number
- Source:
- src/sound/Sound.js line 62
-
<readonly> usingAudioTag : boolean
-
Whether this sound is being played via the Audio tag.
Type:
- boolean
- Source:
- src/sound/Sound.js line 162
-
<readonly> usingWebAudio : boolean
-
Whether this sound is being played with Web Audio.
Type:
- boolean
- Source:
- src/sound/Sound.js line 156
-
volume : number
-
Gets or sets the volume of this sound, a value between 0 and 1. The value given is clamped to the range 0 to 1.
Type:
- number
- Source:
- src/sound/Sound.js line 1232
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:
- src/sound/Sound.js line 383
-
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:
- src/sound/Sound.js line 1054
-
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:
- src/sound/Sound.js line 947
-
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:
- src/sound/Sound.js line 974
-
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:
- src/sound/Sound.js line 987
-
loopFull( [volume])
-
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).
- Source:
- src/sound/Sound.js line 580
Returns:
This sound instance.
- Type
- Phaser.Sound
-
<protected> 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.
- Source:
- src/sound/Sound.js line 421
-
pause()
-
Pauses the sound.
- Source:
- src/sound/Sound.js line 833
-
play( [marker] [, position] [, volume] [, loop] [, forceRestart] [, onPlay])
-
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.
onPlay
boolean <optional>
true Dispatch the
onPlay
signal.- Source:
- src/sound/Sound.js line 592
Returns:
This sound instance.
- Type
- Phaser.Sound
-
removeMarker(name)
-
Removes a marker from the sound.
Parameters:
Name Type Description name
string The key of the marker to remove.
- Source:
- src/sound/Sound.js line 411
-
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:
- src/sound/Sound.js line 814
-
resume()
-
Resumes the sound.
- Source:
- src/sound/Sound.js line 851
-
<protected> 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.
- Source:
- src/sound/Sound.js line 368
-
stop()
-
Stop playing this sound.
- Source:
- src/sound/Sound.js line 904
-
<protected> update()
-
Called automatically by Phaser.SoundManager.
- Source:
- src/sound/Sound.js line 475
-
<protected> 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.
- Source:
- src/sound/Sound.js line 1032