audio要素/video要素について
ページに音楽ファイルを読み込むためのaudio要素と、動画ファイルを読み込むvideo要素はいずれもHTMLMediaElementの子孫要素です。

親要素が共通しているので、2つの要素は使えるプロパティ、メソッド、イベントのほとんどが共通しています。
一部、要素ごとに独自のプロパティやメソッドが用意されています。
以降は、audio要素とvideo要素が使用できるプロパティ、メソッド、イベントの内容を解説していきます。
プロパティ
audio要素とvideo要素で使用できるプロパティの一覧です。
内容の中にある「メディアファイル」は音楽ファイルと動画ファイルの両方を指す総称として使います。
「読み取りのみ」が「○」になっているプロパティは値の取得のみで、あとから変更することはできません。
| プロパティ名 | 内容 | 読取のみ | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| audioTracks | audio要素、video要素に含まれる音声トラックリスト。値はAudioTrackListオブジェクトで返す。 | |||||||||||||||||||
| autoplay | 自動再生を開始する。有効のときはtrue、無効のときはfalse。ただし、消音でないときはほとんどのブラウザで自動再生が無効になる。 | |||||||||||||||||||
| buffered | ブラウザがバッファリングしているメディアファイルの長さ。値はTimeRangesオブジェクト。 | ○ | ||||||||||||||||||
| controller | 要素に割りてられたコントローラを表す。初期値はNULL。 | |||||||||||||||||||
| controls | コントーラの表示の有無。表示するときはtrue、非表示のときはfalse。 | |||||||||||||||||||
| crossOrigin | 異なるドメインからメディアファイルを読み込むかどうか。同じドメインからの読み込みのみ許可するときはanonymous、クロスドメイン(異なるドメイン)からの読み込みを許可するときはuse-credentials。 | |||||||||||||||||||
| currentSrc | 再生しているメディアのメディアファイルのパス。値は文字列。 | ○ | ||||||||||||||||||
| currentTime | 再生しているメディアファイルの再生位置。値は開始時点の0〜再生時間(durationプロパティ)の間の浮動小数点数。 | |||||||||||||||||||
| defaultMuted | メディアファイルを再生したときにデフォルトで消音(ミュート)を有効にするかどうか。デフォルトで消音のときはtrue、それ以外はfalse。消音設定を動的に変更するときはmutedプロパティを使う。 | |||||||||||||||||||
| defaultPlaybackRate | デフォルトの再生速度。値の変更はplaybackRateプロパティを使う | |||||||||||||||||||
| duration | メディアファイルの全体の再生時間。値は浮動小数点数。リソースファイルが読み込めなかったときは0、再生時間が不明なときはNaN、ファイル情報よりも音声ファイルの長さが短いときはInf。 | ○ | ||||||||||||||||||
| ended | メディアファイルの再生が終了したらtrue、終了していなければfalse。 | ○ | ||||||||||||||||||
| error | メディアファイルの再生についてエラーが発生していたらMediaErrorオブジェクトが入る。エラーがない場合はnull。 | ○ | ||||||||||||||||||
| loop | メディアファイルの再生が終了した後にまた開始地点から再生するときはtrue、再生しないで停止するときはfalse。 | |||||||||||||||||||
| mediaGroup | audio要素、video要素にに設定されたmediagroup属性の値。 | |||||||||||||||||||
| muted | 消音になっていたらtrue、消音解除しているときはfalse。 | |||||||||||||||||||
| networkState | インターネットから取得するメディアファイルの取得状況。値は以下のいずれかの状態にあわせて0〜3の数値が入ります。
| ○ | ||||||||||||||||||
| onerror | イベントerrorを処理するためのイベントハンドラ。 | |||||||||||||||||||
| paused | 一時停止しているときはtrue、再生中のときはfalse。 | ○ | ||||||||||||||||||
| playbackRate | メディアファイルの再生速度。通常の速度は1.0、1.1以上は早送り、0.9以下の数値はスロー再生、-1.0など負の値は逆再生。2020年10月時点では、逆再生に対応しているブラウザはSafariのみ。 | |||||||||||||||||||
| readyState | メディアファイルの再生準備状態。
| ○ | ||||||||||||||||||
| seekable | ユーザーがシークできる再生時間の範囲内かどうか。値はTimeRangesオブジェクト。 | ○ | ||||||||||||||||||
| src | 再生するメディアファイルのパス。値は文字列。 | |||||||||||||||||||
| srcObject | 音声ファイルのメディアファイル。MediaSteamオブジェクト、MediaSourceオブジェクト、Blobオブジェクト、Fileオブジェクトのいずれかを指定。 | |||||||||||||||||||
| videoTracks | audio要素、video要素に含まれる動画トラックリスト。値はVideoTrackListオブジェクト。 | ○ | ||||||||||||||||||
| volume | 再生する音量。値は0(無音)〜1.0(最大音量)の間で指定する。mutedプロパティによる消音が有効になっていたら、そちらを優先して適用する。 |
メソッド
audio要素とvideo要素で使用できるメソッドの一覧です。
| メソッド名 | 内容 | 戻り値 |
|---|---|---|
| canPlayType() | 「audio/mp3」など指定したメディアタイプを再生できるか確認する。 | 文字列で以下のいずれか。
|
| captureStream() | audio要素、video要素で読み込んでいるメディアファイルをキャプチャしたMediaStreamオブジェクトを取得する。 | MediaStreamオブジェクト |
| load() | audio要素、video要素をリセットしてメディアファイルを読み込みし直す。 | |
| pause() | メディアファイルを一時停止する | |
| play() | メディアファイルの再生を開始する | Promiseオブジェクト |
イベント
audio要素とvideo要素で発生するイベント一覧です。
| イベント名 | 発生するタイミング |
|---|---|
| abort | メディアファイルを完全に読み込めなかったときに発生する。 |
| canplay | メディアファイル読み込み中に再生できる状態になると発生する。 |
| canplaythrough | メディアファイルを途中で中断せずに最後まで再生できる状態になったときに発生する。 |
| durationchange | 読み込んだメディアファイルの再生時間を表すdurationプロパティの値が更新されたときに発生する。 |
| emptied | メディアファイルが空になったときに発生する。 |
| ended | メディアファイルの再生時間の長さに再生位置が到達したときに発生する。 |
| error | 指定したメディアファイルが見つからなかったり、ネットワークが繋がってなくて読み込めなかったときに発生する。 |
| loadeddata | メディアファイルの再生位置部分の読み込みが完了したときに発生する。 |
| loadedmetadata | メディアファイルのメタデータが読み込まれたときに発生する。 |
| loadstart | メディアファイルの読み込みを開始したときに発生する。 |
| pause | 再生を一時停止したときに発生する。 |
| play | 再生を開始したときに発生する。 |
| progress | メディアファイルを読み込んでいる間に継続的に発生する。 |
| ratechange | 再生レートを変更したとき。playbackRateプロパティの値を変更すると発生する。 |
| seeked | シーク操作(再生位置の移動)が完了するときに発生する。currentTimeプロパティの値を変更すると、変更直後に発生する。 |
| seeking | シーク操作(再生位置の移動)を開始するときに発生する。currentTimeプロパティの値を変更すると、変更直前に発生する。 |
| stalled | メディアファイルのデータを読み込もうとしても失敗したときに発生する。 |
| suspend | メディアファイルの読み込みが中断されたときに発生する。 |
| timeupdate | 再生位置を示すcurrentTimeプロパティの値が更新されたときに発生する。再生中は頻繁に発生。 |
| volumechange | 音量を変更したときに発生する。volumeプロパティのみでなく、muteプロパティによる消音の有効/無効の切り替えでも発生。 |
| waiting | ネットワーク回線の遅延などによって、メディアファイルの再生するデータが不足して再生を続けられないときに発生する。 |
発生したイベントを検出するときはaddEventListenerメソッドを使うか、イベントハンドラを使う2種類の方法があります。
addEventListenerメソッドを使う場合
addEventListenerメソッドを使う場合は、発生を検出したいイベントをイベントリスナーに登録します。
JavaScript コード例
window.addEventListener('DOMContentLoaded', function(){
const videoElement = document.querySelector("video");
audioElement.addEventListener("play", (e) => {
console.log("Play start");
});
});イベントハンドラを使う場合
イベントハンドラで発生したイベントを検出するときは、上記イベント一覧にあるイベント名の前に「on」を加えて設定します。
例えばイベント「play」であれば「onplay」として、以下のように設定して使います。
JavaScript コード例
window.addEventListener('DOMContentLoaded', function(){
const videoElement = document.querySelector("video");
audioElement.onplay = (e) => {
console.log("Play start");
};
});