JavaScriptで音を鳴らす!5つの使い方と実用例を徹底解説 – Japanシーモア

JavaScriptで音を鳴らす!5つの使い方と実用例を徹底解説

JavaScriptで音を鳴らす方法のイメージJS
この記事は約8分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

このサービスは複数のSSPによる協力の下、運営されています。

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、JavaScriptで音を鳴らす方法をマスターし、ウェブページにインタラクティブな音声機能を追加することができるようになります。

では、それぞれの項目について詳しく解説していきましょう。

●JavaScriptで音を鳴らす基本

まず、JavaScriptで音を鳴らす方法の基本について学びます。

○HTML5のAudio要素とは

HTML5では、Audio要素が導入されました。

これにより、ウェブページで音声を再生することが簡単になりました。

Audio要素を使うことで、ブラウザ上で音声ファイルを再生・制御することが可能です。

○JavaScriptを使って音を鳴らす基本的な方法

JavaScriptで音を鳴らすには、下記のようにAudioオブジェクトを作成し、音声ファイルのパスを指定して再生します。

const audio = new Audio('sound.mp3');
audio.play();

これだけで、指定した音声ファイルが再生されます。

●JavaScriptで音を鳴らす5つの使い方

次に、JavaScriptを使って音を鳴らす具体的な使い方を5つ紹介します。

○サンプルコード1:ボタンを押すと音が鳴る

ボタンを押したときに音が鳴るようにするには、下記のようにコードを書きます。

<button id="playButton">音を鳴らす</button>
<script>
const audio = new Audio('sound.mp3');
document.getElementById('playButton').addEventListener('click', () => {
  audio.play();
});
</script>

このコードでは、ボタンがクリックされたときに、指定した音声ファイルが再生されます。

○サンプルコード2:マウスオーバーで音が鳴る

マウスオーバーしたときに音が鳴るようにするには、下記のようにコードを書きます。

<div id="hoverArea">マウスオーバーで音が鳴ります</div>
<script>
const audio = new Audio('sound.mp3');
document.getElementById('hoverArea').addEventListener('mouseover', () => {
  audio.play();
});
</script>

このコードでは、マウスオーバーされたときに、指定した音声ファイルが再生されます。

○サンプルコード3:BGMを再生・停止する

BGMを再生・停止する機能を作成するには、下記のようにコードを書きます。

<button id="toggleBGM">BGMを再生/停止</button>
<script>
const bgm = new Audio('bgm.mp3');
bgm.loop = true;
let isPlaying = false;

document.getElementById('toggleBGM').addEventListener('click', () => {
  if (isPlaying) {
    bgm.pause();
    isPlaying = false;
  } else {
    bgm.play();
    isPlaying = true;
  }
});
</script>

このコードでは、ボタンがクリックされたときに、BGMが再生中であれば停止し、停止中であれば再生されます。

○サンプルコード4:音量を調節する

音量を調節する機能を作成するには、下記のようにコードを書きます。

<input id="volumeControl" type="range" min="0" max="1" step="0.1" value="0.5">
<script>
const audio = new Audio('sound.mp3');
audio.loop = true;
audio.play();

document.getElementById('volumeControl').addEventListener('input', (event) => {
  audio.volume = event.target.value;
});
</script>

このコードでは、音量コントロールのスライダーが操作されたときに、音量が変更されます。

○サンプルコード5:複数の音を同時再生する

複数の音を同時再生するには、下記のようにコードを書きます。

<button id="playSounds">複数の音を同時再生</button>
<script>
const sound1 = new Audio('sound1.mp3');
const sound2 = new Audio('sound2.mp3');

document.getElementById('playSounds').addEventListener('click', () => {
  sound1.play();
  sound2.play();
});
</script>

このコードでは、ボタンがクリックされたときに、2つの音声ファイルが同時に再生されます。

●実用例とサンプルコード

次に、実用的な例をいくつか紹介しましょう。

○サンプルコード6:音声ファイルをプリロードする

音声ファイルをプリロードしておくことで、再生時の遅延を防ぐことができます。

下記のようにコードを書きます。

<script>
const audio = new Audio('sound.mp3');
audio.preload = 'auto';
audio.addEventListener('canplaythrough', () => {
  console.log('音声ファイルのプリロードが完了しました');
});
</script>

このコードでは、音声ファイルがプリロードされ、再生可能になるとコンソールにメッセージが表示されます。

○サンプルコード7:音声の再生位置を変更する

音声の再生位置を変更するには、下記のようにコードを書きます。

<button id="changePlaybackPosition">再生位置を変更</button>
<script>
const audio = new Audio('sound.mp3');
audio.play();

document.getElementById('changePlaybackPosition').addEventListener('click', () => {
  audio.currentTime = 10; // 再生位置を10秒に変更
});
</script>

このコードでは、ボタンがクリックされたときに、音声の再生位置が10秒に変更されます。

○サンプルコード8:音声再生速度を変更する

音声の再生速度を変更するには、下記のようにコードを書きます。

<input id="playbackRateControl" type="range" min="0.5" max="2" step="0.1" value="1">
<script>
const audio = new Audio('sound.mp3');
audio.play();

document.getElementById('playbackRateControl').addEventListener('input', (event) => {
  audio.playbackRate = event.target.value;
});
</script>

このコードでは、再生速度コントロールのスライダーが操作されたときに、再生速度が変更されます。

○サンプルコード9:音声ファイルの再生終了を検出する

音声ファイルの再生が終了したことを検出するには、下記のようにコードを書きます。

<script>
const audio = new Audio('sound.mp3');
audio.play();

audio.addEventListener('ended', () => {
  console.log('音声ファイルの再生が終了しました');
});
</script>

このコードでは、音声ファイルの再生が終了したときに、コンソールにメッセージが表示されます。

○サンプルコード10:音声ファイルの再生が一時停止されたことを検出する

音声ファイルの再生が一時停止されたことを検出するには、下記のようにコードを書きます。

<button id="pauseAudio">一時停止</button>
<script>
const audio = new Audio('sound.mp3');
audio.play();

document.getElementById('pauseAudio').addEventListener('click', () => {
  audio.pause();
});

audio.addEventListener('pause', () => {
  console.log('音声ファイルの再生が一時停止されました');
});
</script>

このコードでは、一時停止ボタンがクリックされたときに、音声ファイルの再生が一時停止され、コンソールにメッセージが表示されます。

まとめ

この記事では、JavaScriptを使用して音を鳴らす方法について、基本的な使い方から応用例まで詳しく解説しました。

サンプルコードを参考に、自分のプロジェクトに合わせてカスタマイズしてみてください。