A JavaScript Sound API supporting MP3, MPEG4 and HTML5 Audio.
What SoundManager 2 does
Audio features, accessible from JavaScript.
About SoundManager 2, Features and Live Demos
SoundManager 2 makes it easier to play audio using JavaScript.
By wrapping and extending HTML5 and Flash Audio APIs, SoundManager 2 brings reliable cross-platform audio to JavaScript. How it works »
Inline JavaScript Sound API Examples
Basic MP3 ButtonsMore »
Change coins.mp3 | Glass 1 glass0.mp3 | 2 glass1.mp3 | 3 glass2.mp3
Playable MP3 linksMore »
360° Player UIMore »
Muxtape-style UI (+HTML5 tests)More »
HTML5 Audio()-only tests
More: API | Drum Machine | Animation
HTML5 Audio Support (Beta-ish)
- 100% Flash-free MP3 + MP4/AAC where supported. Works on iPad, iPhone iOS 4
- Fallback to Flash for MP3/MP4 support, as needed
- SM2 API is unchanged, transparent; HTML5/Flash switching handled internally
- HTML5 API support approximates Flash 8 API features, minus ID3, plus buffering
- Some other formats (WAV/OGG) supported via HTML5, depending on browser
- See soundManager
.useHTML5Audio for implementation details
Basic API Features (Flash 8)
- Load, stop, play, pause, mute, seek, pan, volume control from JavaScript
- Events: onload(), whileloading(), whileplaying(), onfinish() and more
- ID3V1 and ID3V2 tag support for MP3s (title, artist, genre etc.)
Shiny Flash 9-only Features
- RTMP / Flash Media Server streaming support (experimental) - see serverURL for details
- MPEG-4 (AAC, HE-AAC, H.264) audio support
- "MultiShot" play (layered/chorusing effects)
- Waveform/frequency spectrum data
- Peak (L/R channel volume) data
- Audio buffering state/event handling
General Tech Stuff
- Full API Documentation with examples and notes
- console.log()-style debug output and troubleshooting tools
- Community-based discussion/support
As Heard On TV The Internets
A few nifty places SoundManager 2 has been seen in use on the Wild World Web:
Download!
Playing MP3s with JavaScript
Play audio in one line, or get fancy with multiple options.
How To Play Audio Using SoundManager 2
Simple ID / URL method:
soundManager.play('mySound','/path/to/an.mp3');
And, setting the volume:
soundManager.setVolume('mySound',50);
More flexible method supporting option parameters as an object literal:
var mySound = soundManager.createSound({
id: 'someSound',
url: '/path/to/some.mp3',
volume: 50,
onload: soundLoadedFunction
});
mySound.play();
Using SM2 on your site
How to include SoundManager 2 from HTML, and some basic event handlers.
Include the SoundManager 2 core script, tell it where to look for the flash .SWF and provide an onload() handler.
<script type="text/javascript" src="/path/to/soundmanager2.js"></script>
<script type="text/javascript">
soundManager.url = '/path/to/swfs/';
soundManager.onload = function() {
// SM2 is ready to go!
// soundManager.createSound(...) calls can now be made, etc.
}
</script>
Licensing
BSD licensed.
SoundManager 2 is provided under a BSD license.