---
title: HTMLMediaElement
slug: Web/API/HTMLMediaElement
tags:
- API
- DOM
- HTML
- HTMLMediaElement
- Interface
- Media
- NeedsNewLayout
- Reference
- インターフェイス
translation_of: Web/API/HTMLMediaElement
---
{{APIRef("HTML DOM")}}
HTMLMediaElement
インターフェイスは、 {{domxref("HTMLElement")}} に音声や動画で一般的なメディアに関する基本的な能力の対応に必要なプロパティやメソッドを追加します。 {{domxref("HTMLVideoElement")}} および {{domxref("HTMLAudioElement")}} 要素はどちらも、このインターフェイスを継承しています。
{{InheritanceDiagram(600, 120)}}
プロパティ
このインターフェイスは祖先である {{domxref("HTMLElement")}}, {{domxref("Element")}}, {{domxref("Node")}}, {{domxref("EventTarget")}} のプロパティを継承しています。
- {{domxref("HTMLMediaElement.audioTracks")}}
- {{domxref("AudioTrackList")}} で、この要素に含まれる {{domxref("AudioTrack")}} オブジェクトを列挙します。
- {{domxref("HTMLMediaElement.autoplay")}}
- {{jsxref("Boolean")}} で、 HTML の {{htmlattrxref("autoplay", "video")}} 属性の値を反映し、再生に十分なデータが揃った時点で自動的に再生を始めるかどうかを示します。
メモ: オーディオ(またはオーディオトラックを含むビデオ)を自動的に再生するサイトは、ユーザーにとって不快なエクスペリエンスになる可能性があるため、可能な限り避ける必要があります。 自動再生機能を実装する必要がある場合、オプトイン(ユーザーに明示的に有効にすること)する必要があります。 ただし、ソースが後でユーザー制御下で実行されるメディア要素をプレ作成する場合、これは便利です。
- {{domxref("HTMLMediaElement.buffered")}} {{readonlyinline}}
- その時点でブラウザがバッファしたメディアデータの範囲を表す {{domxref("TimeRanges")}} オブジェクトを取得できます。
- {{domxref("HTMLMediaElement.controller")}}
- 要素に割り当てられた {{domxref("MediaController")}} オブジェクトを参照できます。割り当てられていない場合の値は
null
です。
- {{domxref("HTMLMediaElement.controls")}}
- 再生をコントロールするユーザインタフェースの表示 / 非表示を指定する{{htmlattrxref("controls", "video")}} 属性を、{{jsxref('Boolean')}} で参照できます。
- {{domxref("HTMLMediaElement.controlsList")}} {{readonlyinline}}
- ユーザーエージェントが独自のコントロールセットを表示するたびに、メディア要素に表示するコントロールをユーザーエージェントが選択するのに役立つ{{domxref("DOMTokenList")}}を返します。
DOMTokenList
は、nodownload
、nofullscreen
、noremoteplayback
の3つの値のうち1つ以上を取ります。
- {{domxref("HTMLMediaElement.crossOrigin")}}
- このメディア要素の CORS 設定 を {{domxref("DOMString")}} で参照できます。
- {{domxref("HTMLMediaElement.currentSrc")}}{{readonlyinline}}
- 選択されたメディアリソースの絶対 URL を {{domxref("DOMString")}} で返します。
- {{domxref("HTMLMediaElement.currentTime")}}
- 現在の再生時間を
double
で返します。値を代入することで、シークを行えます。
- {{domxref("HTMLMediaElement.defaultMuted")}}
- 標準状態で音声がミュートされているか、いないかを表す、HTML の {{htmlattrxref("muted", "video")}} 属性を {{jsxref('Boolean')}} で参照できます。
- {{domxref("HTMLMediaElement.defaultPlaybackRate")}}
- 標準の再生レートを
double
で返します。
- {{domxref("HTMLMediaElement.disableRemotePlayback")}}
- リモート再生ができるかどうかを{{jsxref('Boolean')}}で取得できます。メディア要素にリモート再生UIを許可するかどうかを返します。
- {{domxref("HTMLMediaElement.duration")}}{{readonlyinline}}
- メディアの長さを秒数で表した数値を
double
で取得できます。メディアデータがない場合は、0 を返します。
- {{domxref("HTMLMediaElement.ended")}}{{readonlyinline}}
- 再生が終了しているか、いないかを {{jsxref('Boolean')}} で取得できます。
- {{domxref("HTMLMediaElement.error")}}{{readonlyinline}}
- 一番最後に起きたエラーを {{domxref("MediaError")}} オブジェクトとして返します。エラーが起きていない場合は null を返します。
- {{domxref("HTMLMediaElement.loop")}}
- 繰り返し再生を有効、無効を表す HTML の {{htmlattrxref("loop", "video")}} を{{jsxref('Boolean')}} として参照できます。
- {{domxref("HTMLMediaElement.mediaGroup")}}
- Is a {{domxref("DOMString")}} that reflects the {{ htmlattrxref("mediagroup", "video")}} HTML attribute, which indicates the name of the group of elements it belongs to. A group of media elements shares a common {{domxref('MediaController')}}.
- {{domxref("HTMLMediaElement.mediaKeys")}} {{readonlyinline}} {{experimental_inline}}
- Returns a {{domxref("MediaKeys")}} object or
null
. MediaKeys is a set of keys that an associated HTMLMediaElement can use for decryption of media data during playback.
- {{domxref("HTMLMediaElement.mozAudioCaptured")}} {{readonlyinline}} {{non-standard_inline}}
- Returns a {{jsxref('Boolean')}}. Related to audio stream capture.
- {{domxref("HTMLMediaElement.mozFragmentEnd")}} {{non-standard_inline}}
- Is a
double
that provides access to the fragment end time if the media element has a fragment URI for currentSrc
, otherwise it is equal to the media duration.
- {{domxref("HTMLMediaElement.mozFrameBufferLength")}} {{non-standard_inline}} {{deprecated_inline}}
-
Is a unsigned long
that indicates the number of samples that will be returned in the framebuffer of each MozAudioAvailable
event. This number is a total for all channels, and by default is set to be the number of channels * 1024 (e.g., 2 channels * 1024 samples = 2048 total).
The mozFrameBufferLength
property can be set to a new value for lower latency, larger amounts of data, etc. The size given must be a number between 512 and 16384. Using any other size results in an exception being thrown. The best time to set a new length is after the loadedmetadata event fires, when the audio info is known, but before the audio has started or MozAudioAvailable
events have begun firing.
- {{domxref("HTMLMediaElement.mozSampleRate")}} {{readonlyinline}} {{non-standard_inline}} {{deprecated_inline}}
- Returns a
double
representing the number of samples per second that will be played. For example, 44100 samples per second is the sample rate used by CD audio.
- {{domxref("HTMLMediaElement.muted")}}
- Is a {{jsxref('Boolean')}} that determines whether audio is muted.
true
if the audio is muted and false
otherwise.
- {{domxref("HTMLMediaElement.networkState")}} {{readonlyinline}}
- Returns a
unsigned short
(enumeration) indicating the current state of fetching the media over the network.
- {{domxref("HTMLMediaElement.paused")}} {{readonlyinline}}
- Returns a {{jsxref('Boolean')}} that indicates whether the media element is paused.
- {{domxref("HTMLMediaElement.playbackRate")}}
- Is a
double
that indicates the rate at which the media is being played back.
- {{domxref("HTMLMediaElement.played")}} {{readonlyinline}}
- Returns a {{domxref('TimeRanges')}} object that contains the ranges of the media source that the browser has played, if any.
- {{domxref("HTMLMediaElement.preload")}}
- Is a {{domxref("DOMString")}} that reflects the {{htmlattrxref("preload", "video")}} HTML attribute, indicating what data should be preloaded, if any. Possible values are:
none
, metadata
, auto
.
- {{domxref("HTMLMediaElement.preservesPitch")}} {{non-standard_inline}}
- Is a {{jsxref('Boolean')}} that determines if the pitch of the sound will be preserved. If set to
false
, the pitch will adjust to the speed of the audio. This is implemented with prefixes in Firefox (mozPreservesPitch
) and WebKit (webkitPreservesPitch
).
- {{domxref("HTMLMediaElement.readyState")}} {{readonlyinline}}
- Returns a
unsigned short
(enumeration) indicating the readiness state of the media.
- {{domxref("HTMLMediaElement.seekable")}} {{readonlyinline}}
- Returns a {{domxref('TimeRanges')}} object that contains the time ranges that the user is able to seek to, if any.
- {{domxref("HTMLMediaElement.seeking")}} {{readonlyinline}}
- Returns a {{jsxref('Boolean')}} that indicates whether the media is in the process of seeking to a new position.
- {{domxref("HTMLMediaElement.sinkId")}} {{readonlyinline}} {{experimental_inline}}
- Returns a {{domxref("DOMString")}} that is the unique ID of the audio device delivering output, or an empty string if it is using the user agent default. This ID should be one of the
MediaDeviceInfo.deviceid
values returned from {{domxref("MediaDevices.enumerateDevices()")}}, id-multimedia
, or id-communications
.
- {{domxref("HTMLMediaElement.src")}}
- Is a {{domxref("DOMString")}} that reflects the {{htmlattrxref("src", "video")}} HTML attribute, which contains the URL of a media resource to use.
- {{domxref("HTMLMediaElement.srcObject")}}
- Is a {{domxref('MediaStream')}} representing the media to play or that has played in the current
HTMLMediaElement
, or null
if not assigned.
- {{domxref("HTMLMediaElement.textTracks")}} {{readonlyinline}}
- Returns the list of {{domxref("TextTrack")}} objects contained in the element.
- {{domxref("HTMLMediaElement.videoTracks")}} {{readonlyinline}}
- 要素の持つ {{domxref("VideoTrack")}} オブジェクトのリストを参照できます。
Gecko は 1 トラックの再生のみをサポートします。また複数トラックのメタデータ解析は、 Ogg フォーマットの場合にのみ有効です。
- {{domxref("HTMLMediaElement.volume")}}
- 音量を
double
で取得できます。この値は 0.0 (無音) 以上、1.0 (最大) 以下でなくてはなりません。
イベントハンドラー
- {{domxref("HTMLMediaElement.onencrypted")}}
- メディアが暗号化されている場合に呼ばれる {{domxref('EventHandler')}} を設定できます。
- {{domxref("HTMLMediaElement.onwaitingforkey")}}
- Sets the {{domxref('EventHandler')}} called when playback is blocked while waiting for an encryption key.
廃止された属性
These attributes are obsolete and should not be used, even if a browser still supports them.
- {{domxref("HTMLMediaElement.initialTime")}} {{readonlyinline}} {{non-standard_inline}} {{obsolete_inline}}
double
で、初期再生位置を示す値を秒単位で返します。
- {{domxref("HTMLMediaElement.mozChannels")}} {{readonlyinline}} {{non-standard_inline}} {{deprecated_inline}}
- Returns a
double
representing the number of channels in the audio resource (e.g., 2
for stereo).
廃止されたイベントハンドラー
- {{domxref("HTMLMediaElement.onmozinterruptbegin")}} {{non-standard_inline}} {{obsolete_inline}}
- オーディオチャンネルマネージャによってメディア要素が割り込まれたときに呼び出される {{event("Event_handlers", "event handler")}} を設定します。これは Firefox 固有のもので、 Firefox OS のために実装されていましたが、 Firefox 55 で削除されました。
- {{domxref("HTMLMediaElement.onmozinterruptend")}} {{non-standard_inline}} {{obsolete_inline}}
- 割り込みが完了したときに呼び出される {{domxref('EventHandler')}} を設定します。これは Firefox 固有のもので、 Firefox OS のために実装されていましたが、 Firefox 55 で削除されました。
メソッド
このインターフェイスは祖先である {{domxref("HTMLElement")}}, {{domxref("Element")}}, {{domxref("Node")}}, {{domxref("EventTarget")}} のメソッドを継承しています。
- {{domxref("HTMLMediaElement.addTextTrack()")}}
- 字幕向けトラックのような、テキストトラックを追加します。
- {{domxref("HTMLMediaElement.captureStream()")}} {{experimental_inline}}
- Returns {{domxref("MediaStream")}}, captures a stream of the media content.
- {{domxref("HTMLMediaElement.canPlayType()")}}
- メディアタイプが再生可能かどうかを判定します。
- {{domxref("HTMLMediaElement.fastSeek()")}}
- 指定された時間へシークします。
- {{domxref("HTMLMediaElement.load()")}}
- メディア要素をリセットし、メディアリソースをリスタートします。処理されなかったイベントは破棄されます。メディアデータがダウンロードされる量は
preload
属性の値に影響されます。src
属性の値、もしくは source
要素内の要素を削除した際のリソース解放、もしくは source
の子要素が動的に変更される場合の再スキャンのために利用します。それ以外の場合に呼びだす必要はありません。
- {{domxref("HTMLMediaElement.mozCaptureStream()")}} {{non-standard_inline}}
- [enter description]
- {{domxref("HTMLMediaElement.mozCaptureStreamUntilEnded()")}} {{non-standard_inline}}
- [enter description]
- {{domxref("HTMLMediaElement.mozGetMetadata()")}} {{non-standard_inline}}
- 再生中のメディアデータに対するメタデータを {{jsxref('Object')}} として返します。呼び出すたびに、オブジェクトのコピーが新しく作られます。このメソッドを呼び出すには、loadedmetadata イベント発火している必要があります。
- {{domxref("HTMLMediaElement.pause()")}}
- 再生を一時停止します。
- {{domxref("HTMLMediaElement.play()")}}
- 再生を開始します。
- {{domxref("HTMLMediaElement.seekToNextFrame()")}} {{non-standard_inline}} {{experimental_inline}}
- Seeks to the next frame in the media. This non-standard, experimental method makes it possible to manually drive reading and rendering of media at a custom speed, or to move through the media frame-by-frame to perform filtering or other operations.
- {{domxref("HTMLMediaElement.setMediaKeys()")}} {{experimental_inline}}
- 再生に利用する{{domxref("MediaKeys")}} を指定します。{{jsxref("Promise")}} オブジェクトを返します。
- {{domxref("HTMLMediaElement.setSinkId()")}} {{experimental_inline}}
- 音声出力をレンダリングするデバイスの ID を指定できます。指定はアプリケーションからの利用が許されている場合に有効です。なお返り値は {{jsxref("Promise")}} オブジェクトとなっています。
廃止されたメソッド
These methods are obsolete and should not be used, even if a browser still supports them.
- {{domxref("HTMLMediaElement.mozLoadFrom()")}} {{non-standard_inline}} {{deprecated_inline}}
- このメソッドは Mozilla の独自実装で、他のメディア要素からデータをロードします。通常のリソース選択のアルゴリズムではなく、他の要素の
currentSrc
を選ぶ点以外は、 load()
メソッドと同じように振る舞います。これは他の要素がキャッシュし、バッファしているデータを利用することにより最適化を図るためです。実際に、2 つの要素が同じダウンロードデータを利用する場合、どちらか一方のダウンロードが終われば、他方でもそのデータを利用できるようになります。
イベント
Inherits methods from its parent, {{domxref("HTMLElement")}} , defined in the {{domxref('GlobalEventHandlers')}} mixin. Listen to these events using addEventListener()
or by assigning an event listener to the oneventname
property of this interface.
- {{domxref("HTMLMediaElement.abort_event", 'abort')}}
- Fired when the resource was not fully loaded, but not as the result of an error.
- {{domxref("HTMLMediaElement.canplay_event", 'canplay')}}
- Fired when the user agent can play the media, but estimates that not enough data has been loaded to play the media up to its end without having to stop for further buffering of content
- {{domxref("HTMLMediaElement.canplaythrough_event", 'canplaythrough')}}
- Fired when the user agent can play the media, and estimates that enough data has been loaded to play the media up to its end without having to stop for further buffering of content.
- {{domxref("HTMLMediaElement.durationchange_event", 'durationchange')}}
- Fired when the duration attribute has been updated.
- {{domxref("HTMLMediaElement.emptied_event", 'emptied')}}
- Fired when the media has become empty; for example, when the media has already been loaded (or partially loaded), and the {{domxref("HTMLMediaElement.load()")}} method is called to reload it.
- {{domxref("HTMLMediaElement.ended_event", 'ended')}}
- Fired when playback stops when end of the media (<audio> or <video>) is reached or because no further data is available.
- {{domxref("HTMLMediaElement.error_event", 'error')}}
- Fired when the resource could not be loaded due to an error.
- {{domxref("HTMLMediaElement.loadeddata_event", 'loadeddata')}}
- Fired when the first frame of the media has finished loading.
- {{domxref("HTMLMediaElement.loadedmetadata_event", 'loadedmetadata')}}
- Fired when the metadata has been loaded
- {{domxref("HTMLMediaElement.loadstart_event", 'loadstart')}}
- Fired when the browser has started to load a resource.
- {{domxref("HTMLMediaElement.pause_event", 'pause')}}
- Fired when a request to pause play is handled and the activity has entered its paused state, most commonly occurring when the media's {{domxref("HTMLMediaElement.pause()")}} method is called.
- {{domxref("HTMLMediaElement.play_event", 'play')}}
- Fired when when the
paused
property is changed from true
to false
, as a result of the {{domxref("HTMLMediaElement.play()")}} method, or the autoplay
attribute
- {{domxref("HTMLMediaElement.playing_event", "playing")}}
- Fired when playback is ready to start after having been paused or delayed due to lack of data
- {{domxref("HTMLMediaElement.progress_event", "progress")}}
- Fired periodically as the browser loads a resource.
- {{domxref("HTMLMediaElement.ratechange_event", 'ratechange')}}
- Fired when the playback rate has changed.
- {{domxref("HTMLMediaElement.seeked_event", 'seeked ')}}
- Fired when a seek operation completes
- {{domxref("HTMLMediaElement.seeking_event", 'seeking')}}
- Fired when a seek operation begins
- {{domxref("HTMLMediaElement.stalled_event", 'stalled')}}
- Fired when the user agent is trying to fetch media data, but data is unexpectedly not forthcoming.
- {{domxref("HTMLMediaElement.suspend_event", 'suspend')}}
- Fired when the media data loading has been suspended.
- {{domxref("HTMLMediaElement.timeupdate_event", 'timeupdate')}}
- Fired when the time indicated by the currentTime attribute has been updated
- {{domxref("HTMLMediaElement.volumechange_event", 'volumechange')}}
- Fired when the volume has changed.
- {{domxref("HTMLMediaElement.waiting_event", 'waiting')}}
- Fired when playback has stopped because of a temporary lack of data
仕様書
仕様書 |
状態 |
備考 |
{{SpecName('Media Capture','#htmlmediaelement-extensions','HTMLMediaElement')}} |
{{Spec2('Media Capture')}} |
Adds sinkId and setSinkId() , and captureStream() . |
{{SpecName('EME', '#introduction', 'Encrypted Media Extensions')}} |
{{Spec2('EME')}} |
Adds {{domxref("MediaKeys")}}, {{domxref("MediaEncryptedEvent")}}, {{domxref("setMediaKeys")}}, {{domxref("onencrypted")}}, and {{domxref("onwaitingforkey")}}. |
{{SpecName('HTML WHATWG', "the-video-element.html#htmlmediaelement", "HTMLMediaElement")}} |
{{Spec2('HTML WHATWG')}} |
{{SpecName('HTML5 W3C')}} からの変更なし |
{{SpecName('HTML5 W3C', "embedded-content-0.html#htmlmediaelement", "HTMLMediaElement")}} |
{{Spec2('HTML5 W3C')}} |
初回定義 |
ブラウザーの対応
{{Compat("api.HTMLMediaElement")}}
関連情報
- 参考文献
- {{HTMLElement("video")}} および {{HTMLElement("audio")}}
- このインタフェースを継承している{{domxref("HTMLVideoElement")}} と {{domxref("HTMLAudioElement")}}
- 記事