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

speaker icon

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 »

 
+debug

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

Beta-ish, somewhat experimental demo
  • 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

As Heard On TV The Internets

A few nifty places SoundManager 2 has been seen in use on the Wild World Web:

Download!

Get SoundManager 2

 

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();

See API Demos

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>

See a basic template demo

Licensing

BSD licensed.

SoundManager 2 is provided under a BSD license.

%s1 / %s2