HTML5から導入されたAudioタグ。
非常に便利なのですが、ブラウザによって扱えるオーディオの種類が違います。
Chromeでは.mp3ファイルを、FireFoxでは.oggファイルを読み込みたかったので、下記のようなコードを書いてみました。
音源までのパス(拡張子なし)を渡すとAudioを返してくれることを期待しています。
function buildAudio(path) { if (!win.HTMLAudioElement) { return; } var audio = new Audio(); if (audio.canPlayType) { var canPlayMp3 = ("" !== audio.canPlayType("audio/mpeg")), canPlayOgg = ("" !== audio.canPlayType("audio/ogg")), extension; if (canPlayMp3) { extension = ".mp3" } else if (canPlayOgg) { extension = ".ogg"; } else { return; } audio.loop = false; audio.src = path + extension; audio.load(); return audio; } }
で、検証してみたんですが、
僕の手元の環境(Mac OS 10.8.5, Firefox 27.0.1)ではFirefoxでmp3の音源の再生ができてしまいました。
昔はできなかったような気が。。。引き続き調査します。