Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
AudioParam
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
* Some parts of this feature may have varying levels of support.
Das AudioParam-Interface der Web Audio API repräsentiert einen audio-bezogenen Parameter, üblicherweise einen Parameter eines AudioNode (wie zum Beispiel GainNode.gain).
Ein AudioParam kann auf einen spezifischen Wert oder eine Wertänderung gesetzt und geplant werden, um zu einem bestimmten Zeitpunkt und nach einem bestimmten Muster zu erfolgen.
Jedes AudioParam hat eine Liste von Ereignissen, die anfangs leer ist und definiert, wann und wie sich Werte ändern. Wenn diese Liste nicht leer ist, werden Änderungen mit dem AudioParam.value-Attribut ignoriert. Diese Ereignisliste ermöglicht es uns, Änderungen zu planen, die zu sehr genauen Zeiten stattfinden müssen, unter Verwendung beliebiger zeitbasierten Automationskurven. Die verwendete Zeit ist die, die in AudioContext.currentTime definiert ist.
AudioParam-Typen
Es gibt zwei Arten von AudioParam: a-rate und k-rate Parameter. Jedes AudioNode definiert in der Spezifikation, welche seiner Parameter a-rate oder k-rate sind.
a-rate
Ein a-rate AudioParam nimmt den aktuellen Audio-Parameterwert für jeden Sample-Frame des Audiosignals.
k-rate
Ein k-rate AudioParam verwendet denselben anfänglichen Audio-Parameterwert für den gesamten verarbeiteten Block, das heißt, 128 Sample-Frames. Mit anderen Worten, derselbe Wert gilt für jeden Frame im Audio, während er vom Knoten verarbeitet wird.
Instanz-Eigenschaften
AudioParam.defaultValueSchreibgeschützt-
Repräsentiert den Anfangswert des Attributs, wie er vom spezifischen
AudioNode, der dasAudioParamerstellt, definiert ist. AudioParam.maxValueSchreibgeschützt-
Repräsentiert den maximal möglichen Wert im nominalen (effektiven) Bereich des Parameters.
AudioParam.minValueSchreibgeschützt-
Repräsentiert den minimal möglichen Wert im nominalen (effektiven) Bereich des Parameters.
AudioParam.value-
Repräsentiert den aktuellen Wert des Parameters zu der aktuellen Zeit; anfangs auf den Wert von
defaultValuegesetzt.
Instanz-Methoden
AudioParam.setValueAtTime()-
Plant eine sofortige Änderung des Wertes des
AudioParamzu einem genauen Zeitpunkt, gemessen anAudioContext.currentTime. Der neue Wert wird durch denvalue-Parameter angegeben. AudioParam.linearRampToValueAtTime()-
Plant eine allmähliche lineare Änderung des Wertes des
AudioParam. Die Änderung beginnt zur für das vorherige Ereignis angegebenen Zeit, folgt einer linearen Rampe zum neuen Wert, der imvalue-Parameter angegeben ist, und erreicht den neuen Wert zur imendTime-Parameter angegebenen Zeit. AudioParam.exponentialRampToValueAtTime()-
Plant eine allmähliche exponentielle Änderung des Wertes des
AudioParam. Die Änderung beginnt zur für das vorherige Ereignis angegebenen Zeit, folgt einer exponentiellen Rampe zum neuen Wert, der imvalue-Parameter angegeben ist, und erreicht den neuen Wert zur imendTime-Parameter angegebenen Zeit. AudioParam.setTargetAtTime()-
Plant den Beginn einer Änderung des Wertes des
AudioParam. Die Änderung beginnt zur imstartTimeangegebenen Zeit und bewegt sich exponentiell auf den imtarget-Parameter angegebenen Wert zu. Die exponentielle Abfallrate wird durch dentimeConstant-Parameter definiert, der eine in Sekunden gemessene Zeit ist. AudioParam.setValueCurveAtTime()-
Plant, dass die Werte des
AudioParameinem Satz von Werten folgen, der durch ein Array von Gleitkommazahlen definiert ist, welche angepasst werden, um in das gegebene Intervall zu passen, beginnend zu einer gegebenen Startzeit und über einen gegebenen Zeitraum. AudioParam.cancelScheduledValues()-
Hebt alle geplanten zukünftigen Änderungen des
AudioParamauf. AudioParam.cancelAndHoldAtTime()-
Hebt alle geplanten zukünftigen Änderungen des
AudioParamauf, hält aber seinen Wert zu einer gegebenen Zeit, bis weitere Änderungen mit anderen Methoden vorgenommen werden.
Beispiele
Zuerst ein einfaches Beispiel, das zeigt, wie ein GainNode seinen gain-Wert gesetzt bekommt. gain ist ein Beispiel für ein a-rate AudioParam, da der Wert potenziell für jeden Sample-Frame des Audiomaterials anders gesetzt werden kann.
const audioCtx = new AudioContext();
const gainNode = audioCtx.createGain();
gainNode.gain.value = 0;
Als nächstes ein Beispiel, das zeigt, wie ein DynamicsCompressorNode mit einigen Parameterwerten manipuliert wird. Diese sind Beispiele für k-rate AudioParam-Typen, da die Werte für den gesamten Audioblock auf einmal gesetzt werden.
const compressor = audioCtx.createDynamicsCompressor();
compressor.threshold.setValueAtTime(-50, audioCtx.currentTime);
compressor.knee.setValueAtTime(40, audioCtx.currentTime);
compressor.ratio.setValueAtTime(12, audioCtx.currentTime);
compressor.attack.setValueAtTime(0, audioCtx.currentTime);
compressor.release.setValueAtTime(0.25, audioCtx.currentTime);
Spezifikationen
| Specification |
|---|
| Web Audio API> # AudioParam> |
Browser-Kompatibilität
Loading...