BaseAudioContext: свойство 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 интерфейса BaseAudioContext возвращает начинающуюся с 0 и постоянно увеличивающуюся аппаратную метку времени в секундах, которая может использоваться для планирования воспроизведения звука, визуализации и т.д.

Значение

Число с плавающей запятой.

Примеры

js
const audioCtx = new AudioContext();
// Для работы в старых webkit/blink-браузерах требуется префикс

// …

console.log(audioCtx.currentTime);

Снижение точности времени

Для обеспечения защиты от атак и слежения за пользователем, точность audioCtx.currentTime может округляться в зависимости от настроек браузера. В Firefox настройка privacy.reduceTimerPrecision включена по умолчанию и равна 20 мкс в Firefox 59 (2 мс в Firefox 60).

js
// снижение точности времени (2 мс) в Firefox 60
audioCtx.currentTime;
// 23.404
// 24.192
// 25.514
// …

// снижение точности времени с включённой настройкой `privacy.resistFingerprinting`
audioCtx.currentTime;
// 49.8
// 50.6
// 51.7
// …

В Firefox также есть настройка privacy.resistFingerprinting, которая изменяет точность до 100 мс или значения privacy.resistFingerprinting.reduceTimerPrecision.microseconds, в зависимости от того, что больше.

Спецификации

Specification
Web Audio API
# dom-baseaudiocontext-currenttime

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также