A Javascript library for working with Audio. Features a simple interface as the front end to multiple audio APIs via a plugin model. Currently supports HTML5 Audio & Flash.
JavaScript CSS HTML ActionScript
Clone or download
Pull request Compare This branch is 50 commits ahead, 90 commits behind CreateJS:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
_assets
build
dev/com/createjs/soundjs
docs
examples
lib
src
tests
tutorials
.gitignore
LICENSE.txt
README.md
README_CREATEJS_NAMESPACE.txt
VERSIONS.txt
bower.json
icon.png
npm-debug.log
soundjs.combined.js
soundjs.min.js

README.md

SoundJS

SoundJS is a library to make working with audio on the web easier. It provides a consistent API for playing audio in different browsers, including using a target plugin model to provide an easy way to provide additional audio plugins like a Flash fallback. A mechanism has been provided for easily tying in audio preloading to PreloadJS.

Example

createjs.Sound.addEventListener("fileload", handleLoadComplete);
createjs.Sound.registerSound({src:"path/to/sound.mp3|path/to/sound.ogg", id:"sound"});
function handleLoadComplete(event) {
	createjs.Sound.play("sound");
}

License

Built by gskinner.com, and released for free under the MIT license, which means you can use it for almost any purpose (including commercial projects). We appreciate credit where possible, but it is not a requirement.

Support and Resources

Classes

Sound

The core API for playing sounds. Call createjs.Sound.play(sound, ...options), and a sound instance is created that can be used to control the audio, and dispatches events when it is complete, loops, or is interrupted.

SoundInstance

A controllable sound object that wraps the actual plugin implementation, providing a consistent API for audio playback, no matter what happens in the background. Sound instances can be paused, muted, and stopped; and the volume, pan (where available), and position changed using the simple API.

WebAudioPlugin

The default, built-in plugin, which uses Web Audio APIs to playback sounds. Note that WebAudio will fail to load when run locally, and the HTML audio plugin will be used instead.

HTMLAudioPlugin

The fallback built-in plugin, which manages audio playback via the HTML5 tag. This will be used in instances where the WebAudio plugin is not available.

CordovaAudioPlugin

An additional plugin which will playback audio in a Cordova app and tools that utilize Cordova such as PhoneGap or Ionic. You must manually register this plugin. Currently available on github since SoundJS-0.6.1.

FlashAudioPlugin

An additional plugin which uses a flash shim (and SWFObject) to playback audio using Flash. You must manually set up and register this plugin.

Documentation and examples

Have a look at the included examples and API documentation for more in-depth information.

Changes for SpringRoll

  • The FlashAudioPlugin as3 class uses startSound() a little differently to support proper resuming of looped audio.
  • The FlashAudioPlugin as3 class allows all domains to embed it.
  • The FlashAudioPlugin as3 class plays infinitely looping audio differently to allow it to play gaplessly - this prevents notification when a loop completes in that case.
  • FlashAudioPlugin can handle changing the master volume before the swf is loaded.
  • Changed how FlashAudioPlugin handles loaded files to avoid reloading files each time you play a sound.
  • Sound gets the extension and filename differently from the url so that assets retrieved via PHP service don't break it.
  • Added global pause() and resume() to Sound.
  • Added _volume as a property to AbstractPlugin so it wouldn't be undefined before setVolume() was called
  • Made a small change to XHRRequest's _checkError() to be more Cordova friendly.
  • Added a check in WebAudioSoundInstance to avoid having negative sound durations, which throws errors.