ConvolverNode: buffer-Eigenschaft
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die buffer
-Eigenschaft des ConvolverNode
-Interfaces repräsentiert einen mono-, stereo- oder 4-Kanal-AudioBuffer
, der die (möglicherweise mehrkanalige) Impulsantwort enthält, die vom ConvolverNode
verwendet wird, um den Hall-Effekt zu erzeugen.
Dies ist normalerweise eine einfache Aufnahme eines so nah wie möglich an einem Impuls befindlichen Tons, den Sie im Raum, den Sie modellieren möchten, finden können. Beispielsweise, wenn Sie den Hall in Ihrem Badezimmer modellieren möchten, könnten Sie ein Mikrofon in der Nähe der Tür aufstellen, um den Klang eines platzenden Ballons oder eines synthetisierten Impulses aus dem Waschbecken aufzunehmen. Diese Audioaufnahme könnte dann als Buffer verwendet werden.
Dieser Audio-Buffer muss die gleiche Abtastrate wie der AudioContext
aufweisen, da sonst eine Ausnahme ausgelöst wird. Zum Zeitpunkt der Einstellung dieses Attributs wird der Buffer und der Zustand des Attributs verwendet, um den ConvolverNode
mit dieser Impulsantwort zu konfigurieren, die die gegebene Normalisierung hat. Der Anfangswert dieses Attributs ist null
.
Wert
Ein AudioBuffer
.
Beispiele
Zuweisung eines Audio-Buffers
Das folgende Beispiel erstellt einen Convolver-Knoten und weist ihm einen AudioBuffer
zu.
Für vollständigere Anwendungsbeispiele/informationen werfen Sie einen Blick auf unsere Voice-change-O-matic Demo (siehe app.js für den Code, der unten auszugsweise gezeigt wird).
const audioCtx = new AudioContext();
// …
const convolver = audioCtx.createConvolver();
// …
// Grab audio track via fetch() for convolver node
try {
const response = await fetch(
"https://mdn.github.io/voice-change-o-matic/audio/concert-crowd.ogg",
);
const arrayBuffer = await response.arrayBuffer();
const decodedAudio = await audioCtx.decodeAudioData(arrayBuffer);
convolver.buffer = decodedAudio;
} catch (error) {
console.error(
`Unable to fetch the audio file: ${name} Error: ${err.message}`,
);
}
Spezifikationen
Specification |
---|
Web Audio API # dom-convolvernode-buffer |