Crafty.audio
Add sound files and play them. Chooses best format for browser support. Due to the nature of HTML5 audio, three types of audio files will be required for cross-browser capabilities. These formats are MP3, Ogg and WAV. When sound was not muted on before pause, sound will be unmuted after unpause. When sound is muted Crafty.pause() does not have any effect on sound
The maximum number of sounds that can be played simultaneously is defined by Crafty.audio.maxChannels. The default value is 7.
Methods
- .add()
- .create()
- .isPlaying()
- .mute()
- .pause()
- .play()
- .remove()
- .setChannels()
- .stop()
- .supports()
- .toggleMute()
- .togglePause()
- .unmute()
- .unpause()
Crafty.audio.add()
public this Crafty.audio.add(String id, String url)
- id
A string to refer to sounds
- url
A string pointing to the sound file
public this Crafty.audio.add(String id, Array urls)
- urls
Array of urls pointing to different format of the same sound, selecting the first that is playable
public this Crafty.audio.add(Object map)
- map
key-value pairs where the key is the
id
and the value is either aurl
orurls
Loads a sound to be played. Due to the nature of HTML5 audio, three types of audio files will be required for cross-browser capabilities. These formats are MP3, Ogg and WAV.
Passing an array of URLs will determine which format the browser can play and select it over any other.
Accepts an object where the key is the audio name and either a URL or an Array of URLs (to determine which type to use).
The ID you use will be how you refer to that sound when using Crafty.audio.play
.
Example
//adding audio from an object
Crafty.audio.add({
shoot: ["sounds/shoot.wav",
"sounds/shoot.mp3",
"sounds/shoot.ogg"]
});
//adding a single sound
Crafty.audio.add("walk", [
"sounds/walk.mp3",
"sounds/walk.ogg",
"sounds/walk.wav"
]);
//only one format
Crafty.audio.add("jump", "sounds/jump.mp3");
Crafty.audio.create()
public this Crafty.audio.create(String id, String url)
- id
A string to refer to sounds
- url
A string pointing to the sound file
Creates an audio asset with the given id and resource. Crafty.audio.add
is a more flexible interface that allows cross-browser compatibility.
If the sound file extension is not supported, returns false; otherwise, returns the audio asset.
Crafty.audio.isPlaying()
public Boolean Crafty.audio.isPlaying(string ID)
- id
The id of the audio object
- [Returns]
a Boolean indicating whether the audio is playing or not
Check if audio with the given ID is playing or not (on at least one channel).
Example
var isPlaying = Crafty.audio.isPlaying('music');
Crafty.audio.mute()
public this Crafty.audio.mute()
Mute every Audio instance that is playing.
Example
Crafty.audio.mute();
Crafty.audio.pause()
public this Crafty.audio.pause(string ID)
- id
The id of the audio object to pause
Pause the Audio instance specified by id param.
Example
Crafty.audio.pause('music');
Crafty.audio.play()
public this Crafty.audio.play(String id)
public this Crafty.audio.play(String id, Number repeatCount)
public this Crafty.audio.play(String id, Number repeatCount, Number volume)
- id
A string to refer to sounds
- repeatCount
Repeat count for the file, where -1 stands for repeat forever.
- volume
volume can be a number between 0.0 and 1.0
- [Returns]
The audio element used to play the sound. Null if the call failed due to a lack of open channels.
Will play a sound previously added by using the ID that was used in Crafty.audio.add
.
Has a default maximum of 5 channels so that the same sound can play simultaneously unless all of the channels are playing.
Note that the implementation of HTML5 Audio is buggy at best.
Example
Crafty.audio.play("walk");
//play and repeat forever
Crafty.audio.play("backgroundMusic", -1);
Crafty.audio.play("explosion",1,0.5); //play sound once with volume of 50%
Crafty.audio.remove()
public this Crafty.audio.remove([String id])
- id
A string to refer to sounds
Will stop the sound and remove all references to the audio object allowing the browser to free the memory. If no id is given, all sounds will be removed.
This function uses audio path set in Crafty.path in order to remove sound from the assets object.
Example
Crafty.audio.remove("walk");
Crafty.audio.setChannels()
public this Crafty.audio.setChannels(Number n)
- n
The maximum number of channels
Crafty.audio.stop()
public this Crafty.audio.stop([Number ID])
Stops any playing sound. if id is not set, stop all sounds which are playing
Example
//all sounds stopped playing now
Crafty.audio.stop();
Crafty.audio.supports()
public this Crafty.audio.supports(String extension)
- extension
A file extension to check audio support for
Return true if the browser thinks it can play the given file type, otherwise false
Crafty.audio.toggleMute()
public this Crafty.audio.toggleMute()
Mute or unmute every Audio instance that is playing. Toggles between pausing or playing depending on the state.
Example
//toggle mute and unmute depending on current state
Crafty.audio.toggleMute();
Crafty.audio.togglePause()
public this Crafty.audio.togglePause(string ID)
- id
The id of the audio object to pause/
Toggle the pause status of the Audio instance specified by id param.
Example
Crafty.audio.togglePause('music');
Crafty.audio.unmute()
public this Crafty.audio.unmute()
Unmute every Audio instance that is playing.
Example
Crafty.audio.unmute();
Crafty.audio.unpause()
public this Crafty.audio.unpause(string ID)
- id
The id of the audio object to unpause
Resume playing the Audio instance specified by id param.
Example
Crafty.audio.unpause('music');