audio タグを使っていろいろしたかったので、少し調査した。使ったブラウザは Firefox, Safari, Chrome, Opera の安定してるやつ。
audioタグに割り当てられてる属性云々
- src
 - 再生する音源ソースURL
 
- controls
 - 
  オーディオインターフェースを表示するかどうか
true : する
false : しない
 
- autoplay
 - 
  自動再生するかどうか(iPhone Safari だと有効にならないっぽい)
true : する
false : しない
 
- volume
 - 
  再生ボリューム
0~1 (ディフォルト:1)
 
- muted
 - 
  ミュートされてるか
true : されてる
false : されてない
 
- paused
 - 
  ポーズしてるか
true : してる
false : してない
 
- preload (Safari, Chrome)
 - 
  音源を先読みするか
auto : 自動読み込み (ディフォルト)
metadata : ヘッダ情報のみ読み込み
none : 読みこまない
 
- autobuffler (Firefox, Opera)
 - 
  音源を先読みするか
true : する (Firefoxディフォルト)
false : しない (Operaディフォルト)
 
- ended
 - 
  曲再生終わったか
true : 終わった
false : まだ
 
- seeking
 - 
  再生箇所をシーク中か
true : 中
false : 中じゃない
 
- currentTime
 - 現在の再生秒数
 
使えるメソッド
load() : 音源読み込む
play() : 再生する
pause() : とめる
canPlayType(mime) : 再生できるmimeタイプを調べる。再生できそうな場合は "maybe" 文字列が返ってくる
読み込めるファイルタイプ
audio.canPlayType(mime) 使ってしらべた。mime は apache についてる mime.types の audio/* (+ogg) を利用した。
- Firefox
 - 
  audio/ogg
audio/x-wav
 
- Opera
 - 
  audio/ogg
audio/x-wav
 
- Chrome
 - 
  audio/ogg
audio/mpeg
audio/x-wav
 
- Safari
 - 
  audio/basic
audio/midi
audio/mpeg
audio/x-aiff
audio/x-mpegurl
audio/x-wav
 
- Safari(iPhone)
 - 
  audio/amr
audio/basic
audio/mpeg
audio/x-aiff
audio/x-mpegurl
audio/x-wav
 
共通で使えるのは wav だけ。mp3やm4aが再生できるのは Safari と Chrome のみ。
audioタグの書き方
以下みたいにかく。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;
js経由で再生するとき
上記の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 を押すととまる。