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
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 alsAudioContext.currentTime
, erfolgt die Änderung sofort. EinTypeError
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
).
// 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