AudioParam: Methode exponentialRampToValueAtTime()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die exponentialRampToValueAtTime()-Methode der AudioParam-Schnittstelle plant eine allmähliche exponentielle Änderung des Wertes des AudioParam.
Die Änderung beginnt zu der für das vorherige Ereignis angegebenen Zeit, folgt einer exponentiellen Rampe zum neuen Wert, der im value-Parameter angegeben ist, und erreicht den neuen Wert zur im
endTime-Parameter angegebenen Zeit.
Hinweis: Exponentielle Rampen gelten als nützlicher beim Ändern von Frequenzen oder Wiedergaberaten als lineare Rampen, da das menschliche Ohr anders funktioniert.
Syntax
exponentialRampToValueAtTime(value, endTime)
Parameter
Rückgabewert
Ein Verweis auf dieses AudioParam-Objekt. In einigen älteren Browserimplementierungen dieser Schnittstelle wird undefined zurückgegeben.
Beispiele
In diesem Beispiel haben wir eine Medienquelle mit zwei Steuerungsknöpfen (siehe das audio-param Repo für den Quellcode oder sehen Sie das Beispiel live an.) Wenn diese Knöpfe gedrückt werden, wird exponentialRampToValueAtTime()
verwendet, um den Gain-Wert auf 1.0 hochzufahren und auf 0 herunterzufahren. Das ist ziemlich nützlich für Ein- und Ausblendeffekte:
// create audio context
const audioCtx = new AudioContext();
// set basic variables for example
const myAudio = document.querySelector("audio");
const expRampPlus = document.querySelector(".exp-ramp-plus");
const expRampMinus = document.querySelector(".exp-ramp-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();
// connect the AudioBufferSourceNode to the gainNode
// and the gainNode to the destination
gainNode.gain.setValueAtTime(0, audioCtx.currentTime);
source.connect(gainNode);
gainNode.connect(audioCtx.destination);
// set buttons to do something onclick
expRampPlus.onclick = () => {
gainNode.gain.exponentialRampToValueAtTime(1.0, audioCtx.currentTime + 2);
};
expRampMinus.onclick = () => {
gainNode.gain.exponentialRampToValueAtTime(0.01, audioCtx.currentTime + 2);
};
Hinweis: Ein Wert von 0.01 wurde für den Wert verwendet, auf den in der letzten Funktion gerampt wird, anstatt 0, da ein ungültiger oder rechtswidriger Zeichenfolgenfehler ausgelöst wird, wenn 0 verwendet wird — der Wert muss positiv sein.
Spezifikationen
| Specification |
|---|
| Web Audio API> # dom-audioparam-exponentialramptovalueattime> |
Browser-Kompatibilität
Loading…