AudioContext.currentTime
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.
currentTime
是 AudioContext
的一个只读属性,返回表示只增不减的硬件时间戳的双精度浮点数,可以用来控制音频回放,实现可视化时间轴等等。该值从 0 开始。
值
一个双精度浮点数。
示例
js
const audioCtx = new AudioContext();
// 旧式的 webkit/blink 浏览器需要一个前缀
// …
console.log(audioCtx.currentTime);
降低时间精度
为了防止时间攻击和指纹识别,audioCtx.currentTime
的精度可能会根据浏览器的设置而被四舍五入。在 Firefox 中,privacy.reduceTimerPrecision
参数默认是启用的,在 Firefox 59 中默认为 20us;在 Firefox 60 中则为 2ms。
js
// Firefox 60 中时间精度降低到了 2ms
audioCtx.currentTime;
// 23.404
// 24.192
// 25.514
// …
// 启用 `privacy.resistFingerprinting` 标志以降低时间精度
audioCtx.currentTime;
// 49.8
// 50.6
// 51.7
// …
在 Firefox 中,也可以启用 privacy.resistFingerprinting
标志,精度值将达到 100ms 或 privacy.resistFingerprinting.reduceTimerPrecision.microseconds
标志的值,会更大。
规范
Specification |
---|
Web Audio API # dom-baseaudiocontext-currenttime |
浏览器兼容性
BCD tables only load in the browser