Androidのブラウザで音声再生

とりあえずAudio要素はダメみたい。まず2.2以下だとAndio要素はあるものの対応してるコーデックがないので再生不可能。2.3はmp3とか対応してるんだけど、なぜか再生できなかった。AudioのUIでるんだけど再生押しても再生されない。エミュレータXperia arcも。(やり方悪いのかもだけど)

Flashならいけそうかなということでそれっぽいライブラリを試してみた。
SoundManager 2: JavaScript Sound For The Web

はまったのは、デフォルトでHTML5のAudioが使えそうならそっち優先で使うみたいで、Android2.3は一応canPlayTypeとかでmp3はmaybeとか返るから、HTML5で再生しようとするんだけど、前述の通り再生されない。

んで

soundManager.useHTML5Audio = false;

って強制的にFlash使わせるようにしたら再生できた。でもなんかエミュレータだとFlashのセキュリティエラーみたいのが出て再生できなかった。面倒なので深追いせず。

再生するとこはこんな感じ

soundManager.onready(function() {
    soundManager.createSound({
        id: 'audio',
        url: 'audio.mp3',
        autoLoad: true,
        autoPlay: false,
        onload: function() {
            soundManager.play(this.sID);
        },
        volume: 50
    });
});

あとiPhoneだとautoloadできないからautoLoad trueでロードされなくてonloadが発火しなかったりするっぽい(clickイベントでplay()すれば再生できた)。