Полезная цитата из чата:
Yellow: Определение поддерживаемого формата аудио выглядит так в простейшем случае:
jsAudioType = '';
var aud = document.createElement('audio');
if (aud.canPlayType != null) {
var c;
if ((c = aud.canPlayType('audio/mpeg;')) != '' && c != 'no') {
jsAudioType = 'mp3';
} else if ((c = aud.canPlayType('audio/ogg; codecs="vorbis"')) != '' && c != 'no') {
jsAudioType = 'ogg';
}
}
после выполнения jsAudioType содержит 'mp3' или 'ogg' если они поддерживаются (в данном примере mp3 в приоритете) или пустую строку если нет. Логичным ходом является подгрузка лишь одного из двух типов аудио для каждого звука.
Реализация самого проигрывания может быть такой:
http://dl.dropboxusercontent.com/u/3594143/yal.cc/13-07/Audio.hx
Загрузка аудио выглядит где-то так:
var snd:HTMLMediaElement = cast document.createElement('audio');
var f = null;
f = function( e) {
snd.removeEventListener('canplaythrough', cast f, false);
soundLoaded( e); // mark as loaded
}
snd.addEventListener('canplaythrough', cast f, false);
snd.addEventListener('error', cast soundLoadFailed, false);
snd.src = src;
snd.preload = "auto"; // just to be sure
snd.load(); //
jsAudioLib.set(src, snd);