HTMLMediaElement: currentTime プロパティ
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
HTMLMediaElement
インターフェイスの currentTime
プロパティは、現在の再生時間を秒単位で示します。
この値を変更すると、メディアは新しい時刻にシークされます。
値
現在の再生時刻を秒単位で示す倍精度浮動小数点値です。
メディアがまだ再生されていない場合、 currentTime
の値は play()
メソッドが呼ばれたときに再生が開始されるメディア内の時刻位置を示しています。
currentTime
に新しい値を設定すると、メディアが利用可能であれば、指定された時刻にシークします。
ライブストリーミングされたメディアなど、再生時間が不明なメディアでは、ブラウザーがメディアバッファーから時間切れのメディア部分を取得できない可能性があります。また、タイムラインが 0 秒で始まらないメディアは、そのタイムラインの最も早い時刻より前にシークすることはできません。
秒単位のメディアの長さは、 duration
プロパティを用いて決定することができます。
例
const video = document.createElement("video");
console.log(video.currentTime);
使用上の注意
## 時間精度の低下
タイミング攻撃やフィンガープリンティングから保護するために、video.currentTime
の精度はブラウザー設定によっては丸められている可能性があります。Firefox では、privacy.reduceTimerPrecision
環境設定は既定で有効になっており、既定では 2ms になっています。privacy.resistFingerprinting
を有効にすることもでき、その場合精度は 100ms または privacy.resistFingerprinting.reduceTimerPrecision.microseconds
の値のどちらか大きい方になります。
例えば、時刻精度が低下した場合、video.currentTime
の結果は常に 0.002 の倍数になり、privacy.resistFingerprinting
が有効な場合は 0.1 の倍数(または privacy.resistFingerprinting.reduceTimerPrecision.microseconds
)になります。
// Firefox 60 における 時間制度の低下 (2ms)
video.currentTime;
// Might be:
// 23.404
// 24.192
// 25.514
// …
// `privacy.resistFingerprinting` が有効な場合の時間制度の低下
video.currentTime;
// Might be:
// 49.8
// 50.6
// 51.7
// …
仕様書
Specification |
---|
HTML Standard # dom-media-currenttime-dev |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
HTMLMediaElement
:HTMLMediaElement.currentTime
プロパティを定義しているインターフェイスHTMLMediaElement.fastSeek()
: 時刻をセットする他の方法HTMLMediaElement.duration
: 秒単位のメディアの再生時間