読み込み中...

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

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

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

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

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

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

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

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

●JavaScriptで音を鳴らす基本

JavaScriptを使用して音を鳴らすことは、ウェブ開発者にとって非常に有用なスキルです。

音声機能を追加することで、ユーザー体験を大幅に向上させることができます。

初心者の方々にも理解しやすいよう、JavaScriptで音を鳴らす基本的な方法から解説していきましょう。

○HTML5のAudio要素とは

HTML5で導入されたAudio要素は、ウェブページでの音声再生を簡単にしました。

Audio要素を活用すると、開発者はブラウザ上で音声ファイルを再生したり、制御したりすることが可能になります。

この要素の登場により、ウェブアプリケーションにおける音声機能の実装が格段に容易になりました。

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

JavaScriptで音を鳴らす最も基本的な方法は、Audioオブジェクトを作成し、音声ファイルのパスを指定して再生することです。

次のコードを見てみましょう。

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

このコードを実行すると、指定した音声ファイル(この場合は’sound.mp3’)が再生されます。

非常にシンプルなコードですが、これがJavaScriptで音を鳴らす基本となります。

●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の再生と停止が切り替わります。

loop = trueを設定することで、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>

このコードでは、スライダーの値が変更されるたびに音量が調整されます。

0から1の範囲で音量を設定でき、ユーザーが好みの音量で音声を楽しめるようになります。

○サンプルコード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秒に変更されます。

currentTimeプロパティを操作することで、任意の再生位置にジャンプすることができます。

○サンプルコード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>

このコードでは、スライダーを操作することで音声の再生速度が変更されます。

playbackRateプロパティを使用することで、0.5倍から2倍の範囲で再生速度を調整することができます。

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

音声ファイルの再生が終了したことを検出する機能は、例えば連続再生や次のトラックへの自動移動などの実装に役立ちます。

次のコードで、その方法を見てみましょう。

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

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

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

このイベントを利用することで、再生終了時に特定のアクションを実行することができます。

○サンプルコード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>

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

この機能を利用することで、一時停止時に特定のアクションを実行したり、ユーザーインターフェースを更新したりすることができます。

まとめ

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

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

音声機能を追加することで、ウェブサイトやアプリケーションの魅力を大きく高めることができるでしょう。

ユーザーの期待を超える、インタラクティブで魅力的な音声体験を実装してみましょう。