# 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 the Flash and HTML5 Audio APIs, SoundManager 2 brings solid audio functionality to JavaScript. How it works »

Inline JavaScript Sound API Examples

### Basic MP3 Buttons More »

Change coins.mp3 | Glass 1 glass0.mp3 | 2 glass1.mp3 | 3 glass2.mp3

### Playable MP3 links More »

- A corked beer bottle

### 360° Player UI More »

Random
Water Drop

### Muxtape-style UI (+HTML5 tests)More »

- Armstrong Beat
- Untitled Groove
- BC Quail (HE-AAC)

#### HTML5 Audio()-only tests

- Ghosts + Goblins Reconstructed (OGG)
- A corked beer bottle (WAV)

More: Video | Muxtape UI | Play MP3 links

-html5 | +debug

#### As Heard On TV The Internets

A few nifty sites that have implemented SoundManager 2 for driving audio:

SoundCloud / The Cloud Player last.fm

#### HTML5 Audio() Support! (New, Experimental)

- 100% Flash-free MP3 + MP4/AAC where supported, works on iPad 3.2, iPhone 4.0
- 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 of sounds 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

360° UI + waveform/spectrum
Beta-ish, somewhat experimental demo

- RTMP / Flash Media Server streaming support (new, 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

#### 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.

## Discussion / Support

Get Satisfaction support network
%s1 / %s2