sound
The sound component defines the entity as a source of sound or audio. The sound component is positional and is thus affected by the
components-position .
Example
<
a-entity
id =
"river"
geometry =
"primitive: plane"
material =
"color: blue"
position =
"-10 0 0"
sound =
"src: url(river.mp3); autoplay: true" >
</
a-entity >
Properties
Property
Description
Default Value
autoplay
Whether to automatically play sound once set.
false
on
An event for the entity to listen to before playing sound.
null
loop
Whether to loop the sound once the sound finishes playing.
false
src
Selector to an asset
<audio>
or
url()
-enclosed path to sound file.
null
volume
How loud to play the sound.
1
poolSize
Numbers of simultaneous instances of this sound that can be playing at the same time
1
Methods
Event Name
Description
pauseSound
Pause sound.
playSound
Play sound.
stopSound
Stop sound.
Events
Event Name
Description
sound-ended
triggered when sound finishes playing
Playing on an Event
The
sound
component can also listen to an event before playing as well. For example, we might have a laughing sound play every time we click a monster:
<
a-entity
cursor
position =
"0 0 -5" >
</
a-entity >
<
a-entity
id =
"elmo"
geometry =
"primitive: box"
material =
"src: elmo.png"
sound =
"src: url(ticklelaugh.mp3); on: click" >
</
a-entity >
Preloading a Sound Asset
For performance, we recommend to block the scene on the sound asset to preload and cache. We can do so through the asset management system:
<
a-scene >
<
a-assets >
<
audio
id =
"river"
src =
"river.mp3"
preload =
"auto" >
</
audio >
</
a-assets >
<
a-entity
sound =
"src: #river" >
</
a-entity >
</
a-scene >
Pause and Resume
To programmatically pause or resume a playing sound, we can tell the entity to pause or resume:
var entity =
document .querySelector(
'[sound]' );
entity.components.sound.stopSound();
Or to pause only the sound:
entity.components.sound.pauseSound();
And to play the sound:
entity.components.sound.playSound();