JavaScript: 音声ファイル(Audio)を再生する
JavaScriptで音声ファイルを再生する場合は、 Audioオブジェクトのplayメソッドを使用します。
連続再生したい場合は loopプロパティをtrueに設定し、 再生を停止したい場合は puaseメソッドを使用します。
次のサンプルコードでは、 HTMLで3つのボタン「再生」「連続再生」「ストップ」を作成し、 ボタンが押された場合のそれぞれの処理をJavaScriptで記述しています。
HTML
<button id="go">再生</button> <button id="loop">連続再生</button> <button id= "stop">ストップ</button>
JavaScript
// Audioオブジェクトを作成 let ad = new Audio("./sample.mp3"); ad.volume = 0.1; // ボリューム // 再生ボタン let elem_go = document.getElementById("go"); elem_go.addEventListener("click", function(){ ad.play(); // 再生 ad.loop = false; }, false); // 連続再生ボタン let elem_loop = document.getElementById("loop"); elem_loop.addEventListener("click", function(){ ad.play(); ad.loop = true; // 繰り返し }, false); // ストップボタン let elem_stop = document.getElementById("stop"); elem_stop.addEventListener("click", function(){ ad.pause(); // 一時停止 ad.currentTime = 0; // 次は最初(先頭)から再生する }, false);
コード解説
まずはAudioオブジェクトを作成します (引数に再生したい音声ファイルを指定)。
// Audioオブジェクトを作成 let ad = new Audio("./00-jihou.mp3");
再生する場合はAudioオブジェクトのplayメソッドを使用します。
ad.play(); // 再生
連続再生させる場合はloopプロパティをtrueに設定します。
ad.play(); ad.loop = true; // 繰り返し
一時停止する場合はpauseメソッドを使用します
ad.pause(); // 一時停止
pauseメソッドだけだと、次に再生するときに途中から(ストップした時点から)再生されます。 最初(先頭)から再生したい場合は次のように「currentTime = 0」と記述します。
ad.pause(); // 一時停止 ad.currentTime = 0; // 次は最初(先頭)から再生する