-function playsound(tag, sound) {
- // g_withflash is a global var
- if (g_withflash) {
- $(tag).innerHTML = '<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" '+
-'codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0" id="mysound" WIDTH=1 HEIGHT=1>' +
-'<PARAM NAME="movie" VALUE="../playsound.swf"><PARAM NAME="PLAY" VALUE="true"><PARAM NAME="LOOP" VALUE="false">' +
-'<PARAM NAME=FlashVars VALUE="streamUrl='+sound+'">' +
-'<EMBED swliveconnect="true" name="mysound" src="../playsound.swf" FlashVars="streamUrl='+sound+'" PLAY="true" LOOP="false" '+
-' WIDTH=1 HEIGHT=1 TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></OBJECT>';
- }
+/*
+ samples = [{'name': <name>, 'file': <file>}, ... ]
+*/
+function jukebox(samples)
+{
+ var source, a;
+ this.enable = false;
+ this.audio = {};
+
+ var pro_audio_el = document.createElement('audio');
+ this.enable = !!(pro_audio_el.canPlayType && pro_audio_el.canPlayType('audio/mpeg;').replace(/no/, ''));
+ if (this.enable) {
+ for (i in samples) {
+ sample = samples[i];
+
+ this.audio[sample['name']] = a = document.createElement('audio');
+
+ source = document.createElement('source');
+ source.setAttribute('src', sample['file']);
+ source.setAttribute('type', 'audio/mpeg');
+ a.appendChild(source);
+ a.load();
+ }
+ }
+}
+
+jukebox.prototype = {
+ is_enabled: function() {
+ return this.enable;
+ },
+
+ play: function(name) {
+ var a;
+ if (! this.enable)
+ return;
+
+ if (!(name in this.audio)) {
+ return false;
+ }
+ a = this.audio[name];
+ a.currentTime = 0;
+ a.play();
+ }