Spec-Zone.ru › Web APIs

AudioParam: метод setValueAtTime()

Базовая поддержка Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с апреля 2021 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Метод setValueAtTime() интерфейса AudioParam планирует мгновенное изменение значения AudioParam в точное время, отсчитываемое от AudioContext.currentTime. Новое значение задаётся в параметре value.

Синтаксис

setValueAtTime(value, startTime)

Параметры

value

Число с плавающей точкой, представляющее значение, до которого будет изменено AudioParam в указанное время.

startTime

Число с плавающей точкой, представляющее время (в секундах) с момента создания AudioContext, когда произойдёт изменение значения. Если время меньше AudioContext.currentTime, изменение происходит немедленно. При отрицательном значении выбрасывается исключение TypeError.

Возвращаемое значение

Ссылка на этот объект AudioParam. В некоторых браузерах в более старых реализациях этого интерфейса возвращается undefined.

Примеры

В этом простом примере используется источник из элемента media с двумя кнопками управления (смотрите наш репозиторий webaudio-examples для исходного кода или пример в действии). Когда нажимаются кнопки, переменная currGain увеличивается/уменьшается на 0,25, а затем метод setValueAtTime() используется для установки значения усиления равного currGain, через секунду (audioCtx.currentTime + 1).

// create audio context
const audioCtx = new AudioContext();

// set basic variables for example
const myAudio = document.querySelector("audio");
const pre = document.querySelector("pre");
const myScript = document.querySelector("script");

pre.textContent = myScript.textContent;

const targetAtTimePlus = document.querySelector(".set-target-at-time-plus");
const targetAtTimeMinus = document.querySelector(".set-target-at-time-minus");

// Create a MediaElementAudioSourceNode
// Feed the HTMLMediaElement into it
const source = audioCtx.createMediaElementSource(myAudio);

// Create a gain node and set its gain value to 0.5
const gainNode = audioCtx.createGain();
gainNode.gain.value = 0.5;
let currGain = gainNode.gain.value;

// connect the AudioBufferSourceNode to the gainNode
// and the gainNode to the destination
source.connect(gainNode);
gainNode.connect(audioCtx.destination);

// set buttons to do something onclick
targetAtTimePlus.onclick = () => {
  currGain += 0.25;
  gainNode.gain.setValueAtTime(currGain, audioCtx.currentTime + 1);
};

targetAtTimeMinus.onclick = () => {
  currGain -= 0.25;
  gainNode.gain.setValueAtTime(currGain, audioCtx.currentTime + 1);
};

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

Спецификация
Web Audio API
# dom-audioparam-setvalueattime

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
setValueAtTime 14 12 25 15 6 18 25 14 6 1.0 ≤37

См. также

  • Использование Web Audio API

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/AudioParam/setValueAtTime

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API