audio タグを使っていろいろしたかったので、少し調査した。使ったブラウザは Firefox, Safari, Chrome, Opera の安定してるやつ。
load() : 音源読み込む
play() : 再生する
pause() : とめる
canPlayType(mime) : 再生できるmimeタイプを調べる。再生できそうな場合は "maybe" 文字列が返ってくる
audio.canPlayType(mime) 使ってしらべた。mime は apache についてる mime.types の audio/* (+ogg) を利用した。
共通で使えるのは wav だけ。mp3やm4aが再生できるのは Safari と Chrome のみ。
以下みたいにかく。preload と autobuffler の両方を書いてるのは、クロスブラウザ対応のため。
<audio src="url" controls preload="auto" autobuffler autolpay></audio>
jsで生成するなら以下みたいにかく。
var audio = new Audio("url"); audio.controls = true; audio.autoplay = true; audio.preload = "auto"; audio.autobuffler = true;
var audio = document.createElement('audio'); audio.src = "url"; audio.controls = true; audio.autoplay = true; audio.preload = "auto"; audio.autobuffler = true;
上記のaudioオブジェクトに対して、再生するときは
audio.load(); audio.play();
とめるときは
audio.pause();
すればOK。
ただし、Chromeの場合、load() 実行するとまた最初から再生されちゃうので、以下のように currentTime が 0 の場合だけ load() 実行するようにすれば大丈夫っぽい。
if (audio.currentTime == 0) { audio.load(); } audio.play();
※ SafariとChromeだけ。
※ play を押すと再生、pause を押すととまる。