HTML DOM Audioオブジェクト徹底解説!プロパティ・メソッド・実装例をわかりやすく紹介
HTML DOMのAudioオブジェクトは、HTMLの<audio>要素をJavaScriptから操作するためのインターフェースです。<audio>要素はHTML5で新たに導入されたもので、Audioオブジェクトを使うことで、音声トラック情報の取得や自動再生の設定など、さまざまな操作をプログラムから行うことができます。
Audioオブジェクトの主なプロパティ
HTML DOM Audioオブジェクトには、以下のようなプロパティが用意されています。
| プロパティ | 説明 |
|---|---|
| audioTracks | 利用可能なオーディオトラックの一覧を含むaudioTrackListオブジェクトを返します。 |
| autoplay | 音声を自動再生するかどうかを取得・設定します。 |
| buffered | バッファ済み(読み込み済み)の範囲を含むTimeRangesオブジェクトを返します。 |
| controller | 音声の現在のメディアコントローラーを表すMediaControllerオブジェクトを返します。 |
| controls | 再生/一時停止などのコントロールを表示するかどうかを取得・設定します。 |
| crossOrigin | 音声のCORS(オリジン間リソース共有)設定を取得・設定します。 |
| currentSrc | 現在再生中の音声ファイルのURLを返します。 |
| currentTime | 現在の再生位置(秒単位)を取得・設定します。 |
| defaultMuted | デフォルトでミュート状態にするかどうかを取得・設定します。 |
| defaultPlaybackRate | デフォルトの再生速度を取得・設定します。 |
| duration | 音声の長さを秒単位で返します。 |
| ended | 再生が終了したかどうかを返します。 |
| error | 音声のエラー状態を表すMediaErrorオブジェクトを返します。 |
| loop | 再生終了後に再度再生を繰り返すかどうかを取得・設定します。 |
| mediaGroup | 音声が属するメディアグループ名を取得・設定します。 |
| muted | ミュート(消音)状態かどうかを取得・設定します。 |
| networkState | 音声の現在のネットワーク状態を返します。 |
| paused | 一時停止中かどうかを取得・設定します。 |
| playbackRate | 再生速度を取得・設定します。 |
| played | 再生済みの範囲を表すTimeRangesオブジェクトを返します。 |
| preload | preload属性の値を取得・設定します。 |
| readyState | 音声の現在の準備状態(ready state)を返します。 |
| seekable | シーク可能な範囲を表すTimeRangesオブジェクトを返します。 |
| seeking | ユーザーが現在シーク操作中かどうかを返します。 |
| src | src属性の値(音声ファイルのURL)を取得・設定します。 |
| textTracks | 利用可能なテキストトラック全体を表すTextTrackListオブジェクトを返します。 |
| volume | 音量を取得・設定します。 |
Audioオブジェクトの主なメソッド
Audioオブジェクトには、以下のようなメソッドが用意されています。
| メソッド | 説明 |
|---|---|
| addTextTrack() | 指定した音声に新しいテキストトラックを追加します。 |
| canPlayType() | ブラウザが指定した音声形式を再生できるかどうかを確認します。 |
| fastSeek() | 音声プレーヤー内の指定した時間へ高速にシークします。 |
| getStartDate() | 現在のタイムラインのオフセットを表す新しいDateオブジェクトを返します。 |
| load() | audio要素を再読み込みします。 |
| play() | 音声の再生を開始します。 |
| pause() | 再生中の音声を一時停止します。 |
基本的な構文
Audioオブジェクトの基本的な使い方は次のとおりです。
■ audio要素を新しく作成する場合
var x = document.createElement("AUDIO");
■ 既存のaudio要素にアクセスする場合
var x = document.getElementById("demoAudio");
実装例
それでは、Audioオブジェクトの具体的な使用例を見てみましょう。
<!DOCTYPE html>
<html>
<body>
<h1>MUSIC</h1>
<audio id="Audio" controls>
<source src="sample.mp3" type="audio/mpeg">
お使いのブラウザは音声に対応していません
</audio>
<p>ボタンをクリックすると、音声の長さ(秒)を表示します。</p>
<button onclick="AudioDur()">Duration</button>
<button onclick="CreateAudio()">CREATE</button>
<p id="SAMPLE"></p>
<script>
function AudioDur() {
var x = document.getElementById("Audio").duration;
document.getElementById("SAMPLE").innerHTML = x;
}
function CreateAudio() {
var x = document.createElement("AUDIO");
x.setAttribute("src","sample1.mp3");
x.setAttribute("controls", "controls");
document.body.appendChild(x);
}
</script>
</body>
</html>
実行結果
このコードを実行すると、次のような画面が表示されます。

「Duration」ボタンをクリックした場合 −

「CREATE」ボタンをクリックした場合 −

コードの解説
まず、audio要素を作成し、音声ファイルのパスと形式を指定しています。
<audio id="Audio" controls> <source src="sample.mp3" type="audio/mpeg"> お使いのブラウザは音声に対応していません </audio>
次に、「Duration」と「CREATE」の2つのボタンを作成し、それぞれクリック時にAudioDur()関数とCreateAudio()関数を実行するようにしています。
<button onclick="AudioDur()">Duration</button> <button onclick="CreateAudio()">CREATE</button>
AudioDur()関数では、id「Audio」を持つ<audio>要素を取得し、durationプロパティを使ってその長さ(秒数)を求めています。取得した値は、id「SAMPLE」の段落要素に表示されます。
function AudioDur() {
var x = document.getElementById("Audio").duration;
document.getElementById("SAMPLE").innerHTML = x;
}
CreateAudio()関数では、新しいaudio要素を動的に生成し、setAttribute()メソッドでsrc属性に「sample1.mp3」を設定し、controls属性を指定してコントロールを有効にしています。最後にappendChild()メソッドで、生成した要素をbodyに追加しています。
function CreateAudio() {
var x = document.createElement("AUDIO");
x.setAttribute("src","sample1.mp3");
x.setAttribute("controls", "controls");
document.body.appendChild(x);
}
このように、HTML DOMのAudioオブジェクトを活用すれば、音声の再生制御や動的な要素の生成など、Webページ上での音声操作を柔軟に実装できます。
-
HTML DOM HRオブジェクトとは?作成方法と使い方を解説
HTML DOM の HR オブジェクトは、HTML 文書内の <hr> 要素を表すオブジェクトです。<hr> 要素は、コンテンツの話題やテーマの区切りを視覚的に示す水平線(罫線)として表示されます。JavaScript を使えば、この水平線を動的に生成してページに挿入することも可能です。ここでは、HR オブジェクトの基本的な作成方法と実践的な使用例を紹介します。HRオブジェクトの作成方法(構文)hr オブジェクトを新しく作成するには、document.createElement() メソッドを使用します。構文は以下のとおりです。document.createEleme
-
HTML DOM Ulオブジェクトとは?<ul>要素の操作方法とサンプルコードを解説
HTML DOM の Ul オブジェクトは、HTML の <ul>(順序なしリスト)要素を表すオブジェクトです。JavaScript を使うことで、リストの動的な生成や操作が可能になります。 <ul> 要素の作成方法 新しい <ul> 要素を作成するには、document.createElement() メソッドを使用します。 var ulObject = document.createElement(UL) HTML5で非推奨となったプロパティ ulObject には以下のプロパティが存在しますが、これらは HTML5 ではサポートされていないため注