AudioParam: Methode setValueAtTime()

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.

Die Methode setValueAtTime() der AudioParam-Schnittstelle plant eine sofortige Änderung des AudioParam-Werts zu einem genauen Zeitpunkt, gemessen an AudioContext.currentTime. Der neue Wert wird im Parameter "value" angegeben.

Syntax

js
setValueAtTime(value, startTime)

Parameter

value

Eine Gleitkommazahl, die den Wert darstellt, zu dem AudioParam zu dem gegebenen Zeitpunkt geändert wird.

startTime

Ein Double, das die Zeit (in Sekunden) nach der Erstellung des AudioContext angibt, zu der die Wertänderung erfolgt. Wenn die Zeit kleiner ist als AudioContext.currentTime, erfolgt die Änderung sofort. Ein TypeError wird ausgelöst, wenn dieser Wert negativ ist.

Rückgabewert

Ein Verweis auf dieses AudioParam-Objekt. In einigen Browsern geben ältere Implementierungen dieser Schnittstelle undefined zurück.

Beispiele

Dieses einfache Beispiel zeigt eine Medienquellenkomponente mit zwei Steuerschaltflächen (siehe unser webaudio-examples-Repo für den Quellcode oder sehen Sie sich das Beispiel live an). Wenn die Schaltflächen gedrückt werden, wird die Variable currGain um 0,25 erhöht/verringert, und dann wird die Methode setValueAtTime() verwendet, um den Verstärkungswert auf currGain zu setzen, eine Sekunde von jetzt an (audioCtx.currentTime + 1).

js
// 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);
};

Spezifikationen

Specification
Web Audio API
# dom-audioparam-setvalueattime

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch