HTML
音声が自動再生されない
autoplay がブラウザにブロックされている
こんな症状
audioタグにautoplayを付けたのに音が鳴らない。ブラウザのポリシーで止められているよ。
まず試す
muted 属性を付ければ自動再生できる(音は出ない)。音を出すならユーザーのクリック後に play() する。
html
<!-- muted なら自動再生できる -->
<audio src="bgm.mp3" muted autoplay></audio>
<!-- 音を出すならクリック後に再生 -->
<button onclick="document.getElementById('bgm').play()">再生</button>これで直らなければ、下の「自分のケース」を確認。
🔍 自分のケースはどれ?
- ✓音付きで自動再生したい
→ ブラウザの方針で不可。muted で開始し、ユーザー操作後にミュート解除する。 - ✓とにかく自動で動かしたい
→ muted 属性を付ける(音は出ないが再生は始まる)。 - ✓音を確実に出したい
→ ボタン等のクリックイベント内で play() を呼ぶ。
なぜ起きる?
多くのブラウザはユーザー操作なしの音声自動再生をブロックするよ。これはユーザー体験を守るためのポリシーで、autoplay属性だけでは音声付きメディアは再生されないんだ。muted属性を付けるか、ユーザーのクリック後に再生する必要があるよ。
✕ エラーが起きるコード
<audio src="bgm.mp3" autoplay></audio>
<!-- ブラウザにブロックされて再生されない -->✓ 直したコード
<audio id="bgm" src="bgm.mp3" muted autoplay></audio>
<!-- または JS でクリック後に再生 -->
<button onclick="document.getElementById('bgm').play()">再生</button>✅ 直ったか確認
muted での自動再生、またはクリック後の play() で音声が再生されればOK。
この解決法は役立ちましたか?
🔗 関連するエラー
- video/audio が自動再生されない — ブラウザの自動再生ポリシーでブロックされている
- iframeの高さが合わない — iframe の高さが固定されている
- 画像が表示されない — 画像パスが間違っている
- ページのレイアウトが崩れる — タグの閉じ忘れ
- リンクをクリックしても何も起きない — href 属性の書き忘れ
📖 この問題を学べるレッスン
✏️ 手を動かして練習
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- HTMLとは?初心者向けにわかりやすく解説 — タグの書き方・ページ構造の基本
- HTMLのパス(相対パス・絶対パス)の書き方 — パスの書き方を初心者向けに解説