audiojs is a drop-in javascript library that allows HTML5's <audio>
tag to
be used anywhere. It uses native <audio>
where available and falls back
to an invisible flash player to emulate it for other browsers. It also serves
a consistent html player UI to all browsers which can be styled used standard css.
Forked from kolber/audiojs.
- Supports ogg, but you'll need to have:
- an mp3 fallback
- sources with
.mp3
and.ogg
at the end, or specifytype="audio/ogg"
andtype="audio/mpeg"
- css isn't automatically injected; you'll have to include the css manually.
- If an
<audio>
element has an id, its wrapper will have the class{element id}-audiojs
. - audiojs wrappers will only ever be created once per
<audio>
-
Put
audio.js
,player-graphics.gif
&audiojs.swf
in the same folder. -
Include
audio.js
andaudiojs.css
:<link rel="stylesheet" href="/audiojs/audiojs.css"> <script src="/audiojs/audio.js"></script>
-
Initialise audiojs:
<script> audiojs.events.ready(function() { var as = audiojs.createAll(); }); </script>
-
Then you can use
<audio>
wherever you like in your HTML:<audio src="/sound/juicy.mp3" preload="auto"></audio>
or
<audio> <source src="/sound/juicy.ogg"> <source src="/sound/juicy.mp3"> </audio>
-
The
autoplay
attribute is buggy on Firefox; don't use it. Use this initialiser instead:<script> audiojs.events.ready(function() { var as = audiojs.createAll(); for (var i = as.length - 1; i >= 0; i--) { as[i].play(); } }); </script>
On OSX, you should install closure compiler following the instructions in Ben's gist.
Then you can run rake compile
from root directory and it will package audio.js
into audio.min.js
.
If you want to mess around with the flash-side of things, you will need to be
able to compile the .as
file into a .swf
.
Using the Flex SDK (which is free), flash movies can be compiled directly from the command line. It makes life that little bit less painful.
-
Download and unzip the current 'Milestone Release' 'Open Source Flex SDK' from: http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4
-
Copy the
bin
folder to/usr/local/bin/flex/bin/
-
Add
/usr/local/bin/flex/bin/
to yourPATH
Run the following command from within the audiojs
folder.
mxmlc audiojs.as