blue-phoenix
@blue-phoenix

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Javascriptでmp3が自動再生できない。

Javascriptをしている者です、mp3でページが変わった時に音楽を自動で再生させたいのですが上手くいきません。screen100になった時に自動で音楽を再生させたいです。
使用エディターはVScodeです。

html

<div id = "screen100" class = "screen" style = "display: none;">
<h2>結果</h2>
<p id = "result"></p>
<button id = "next-button100" onclick = "playsound('sound1')">次へ</button>
<audio id = "sound3" src = "sound3.mp3" autoplay muted controls></audio>
</div>

Javascript

window.addEventListener('DOMContentLoaded', function() {
const audioElement = document.getElementById("sound3");
audioElement.addEventListener('loadeddata', (e) => {
audioElement.muted = true; // 自動再生のために最初はミュート
audioElement.play(); // 自動再生を開始
});
});

このコードにした理由は・・・模写です。音楽を鳴らしたいコードはsound3です、ちなみにsound1はクリックした時の効果音で、こちらは上手くいってます。どういう訳かこちらだけ再生できなくて。調べによると、googleでは自動再生にどこか制限があってできないとの話を見ました。こればかりはあきらめるしかないのでしょうか? 別にこのコードじゃなくても良いので方法があれば御教授お願いします。

0

1Answer

以前もお伝えしましたが、ブラウザ側で音の出る音楽・動画は自動再生できないようになっています。

ユーザが操作したタイミングでAudioオブジェクトを生成
 →鳴らしたいタイミングで再生
というような流れで、音が出せるようになると思います。

以下のサイトなどが参考になると思います。

1Like

Comments

  1. @blue-phoenix

    Questioner

    やっぱりそうですか、いわゆる突然の音声表示は感覚の都合上よろしくないらしく・・・。分かりました、クリックのみにします。ありがとうございました。

  2. 「クリック直後にしか再生できない」という誤解がありそうだったので、念のため補足です。

    記事にもありますが、1度クリックさえしてもらえば、あとは自由なタイミングで音を鳴らすことが可能です。

Your answer might help someone💌