Last week we featured a demo from Alistair MacDonald (@F1LT3R) where he showed how to animate SVG with Canvas and a bunch of free tools. This week he has another demo for us that shows how you can use the new audio element in Firefox 3.5 with some canvas and JS to build a nice-looking audio player.
But what’s really interesting about this demo is not so much that it plays audio – lots of people have built audio players – but how it works. If you look at the source code for the page what you’ll find looks something like this:
<div id="jai"> <canvas id="jai-transport" width="320" height="20"></canvas> <ul class="playlist"> <li> <a href="@F1LT3R - Cryogenic Unrest.ogg"> F1LT3R - Cryogenic Unrest </a> <audio src="@F1LT3R - Cryogenic Unrest.ogg"/>. <li> <a href="@F1LT3R - Ghosts in HyperSpace.ogg"> F1LT3R - Ghosts in HyperSpace </a> <audio src="@F1LT3R - Ghosts in HyperSpace.ogg"/>. </ul> </div>
That’s right – the player above is just a simple HTML unordered list that happens to include audio elements and is styled with CSS. You’ll notice that if you right click on one of them that it has all the usual items – save as, bookmark this link, copy this link location, etc. You can even poke at it with Firebug.
<div> element with the
jai ID and then look for any audio elements that are inside it. It then will draw the playback interface in the canvas at the top of the list. The playback interface is built with simple JS canvas calls and an SVG-derived font.
Using this driver it’s super-easy to add an audio player to any web site by just defining a canvas and a list. Much like what we’ve seen on a lot of the web with the rise of useful libraries like jQuery, this library can add additional value to easily-defined markup. Another win for HTML5 and the library model.
Al has a much larger write-up on the same page as the demo. If you haven’t read through it you should now.
(Also? Al wrote the music himself. So awesome.)