Although Three.js is a graphics library, there is an experimental
THREE.AudioObject class at
examples/js/AudioObject.js that uses the Web Audio API to support 3D sound effects. This object inherits from
Object3D so it can be attached to other objects and placed in the world. It is designed to use spatially accurate 3D sound. The main caveat is that the class only works with Chrome as of Three.js version r61 due to browser incompatibilities.
That said, let's go ahead and try adding some cheering sounds when a flag is captured. First, we'll create our
AudioObject instances when we initialize our flags:
var cheering = new THREE.AudioObject('cheering.ogg', 0, 1, false); scene.add(cheering);
This code creates an object to play the
cheering.ogg file with a volume of
0, a playback rate of
1, and no looping. We set the volume to zero initially because
AudioObject plays the sound immediately, and...