音声

audio source

HTML5 ネイティブの音声再生要素。複数の source でフォーマットフォールバックが可能。ブラウザが対応している最初のフォーマットを使用する。

audio 属性一覧デモ

audio demo track
0:120:30
🔊
controls

ブラウザ標準のUIコントロール(再生・一時停止・音量・シークバー)を表示する。

autoplay

ページ読み込み時に自動再生。ブラウザポリシーでブロックされる場合がある。

muted

音声をミュートにする。autoplay と組み合わせるとブロックを回避しやすい。

loop

音声を繰り返し再生する。BGM や効果音のループに使用。

preload

none / metadata / auto。読み込み戦略を制御する。

src

音声ファイルのURL。source 要素を使う場合は省略する。

コード例

<!-- 基本的な audio(複数フォーマット対応)-->
<audio controls preload="metadata">
  <source src="/audio/track.mp3" type="audio/mpeg" />
  <source src="/audio/track.ogg" type="audio/ogg" />
  <source src="/audio/track.wav" type="audio/wav" />
  <p>お使いのブラウザは audio 要素に対応していません。</p>
</audio>

<!-- BGM(自動再生・ループ・ミュート)-->
<audio autoplay muted loop preload="auto">
  <source src="/audio/bgm.mp3" type="audio/mpeg" />
  <source src="/audio/bgm.ogg" type="audio/ogg" />
</audio>

<!-- データ節約:再生ボタンを押すまで読み込まない -->
<audio controls preload="none">
  <source src="/audio/podcast.mp3" type="audio/mpeg" />
</audio>

比較:preload 値のトレードオフ

読み込む内容帯域消費再生開始速度適した用途
none何も読み込まない最小遅い(再生時に開始)ポッドキャスト・長尺コンテンツ
metadata長さ・タイプのみ少量やや遅い時間表示が必要なプレーヤー
autoファイル全体大きい即座短いSE・必ず再生されるBGM

デフォルト値はブラウザ依存。モバイルブラウザは帯域節約のため none に近い挙動をとることが多い。

複数 source によるフォーマットフォールバック

ブラウザは source を上から順に試し、最初に対応したフォーマットを使用する。

MP3audio/mpeg全主要ブラウザ
OGG Vorbisaudio/oggFirefox, Chrome, Edge
WAVaudio/wav全主要ブラウザ(ファイルサイズ大)
AACaudio/aacSafari, Chrome, Edge
WebM Opusaudio/webm;codecs=opusChrome, Firefox, Edge
<!-- 推奨順:対応ブラウザが広い順に記述 -->
<audio controls preload="metadata">
  <source src="/audio/sound.mp3"  type="audio/mpeg" />
  <source src="/audio/sound.ogg"  type="audio/ogg" />
  <source src="/audio/sound.wav"  type="audio/wav" />
</audio>

比較:audio vs video(音声を扱う場合)

要素映像トラックデフォルト表示poster 属性適した用途
audioなしコントロールバーのみ非対応音楽・ポッドキャスト・SE
videoあり映像 + コントロール対応音声付き動画・ビジュアルポッドキャスト

音声のみのコンテンツには audio を使う。video に音声ファイルを指定することも技術的に可能だが、意味論的に正しくない。

Tips

  • MP3 を最初の source に:最も広くサポートされているフォーマット。OGG を続けることで Firefox の最適化も得られる。
  • autoplay の制限:モダンブラウザはユーザーインタラクションなしの自動再生をブロックする。音声付きの autoplay はほぼ不可能。
  • preload="none" を基本に:モバイルユーザーの帯域を節約するため、再生されない可能性がある音声は preload="none" を指定する。
  • フォールバックテキストaudio タグ内にフォールバックテキストや代替リンクを記述しておくと古いブラウザでも機能する。
  • JavaScript APIHTMLAudioElement API で play()pause()currentTime などを操作できる。カスタムプレーヤー構築時に使用。

🤖 AIプロンプトテンプレート

以下の要件を満たす、`<audio>` 要素を使った音声プレイヤーのHTML・CSSサンプルを作成してください。

- `controls` 属性付きの基本的な音声プレイヤーを実装すること
- `<source>` を使って MP3・OGG の複数フォーマットに対応すること
- `preload="none"` を基本とし、帯域節約の考え方を示すこと
- フォールバックテキストを `<audio>` タグ内に記述すること
- ループ再生(`loop`)やミュート(`muted`)の使用例も含めること

⚠️ このプロンプトはあくまでたたき台です。AIの回答はモデルやバージョン、会話の文脈によって毎回異なります。意図通りに動かない場合は、条件を追記・修正してお使いください。