ConvolverNode: Eigenschaft buffer
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 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 Halleffekt zu erzeugen.
Dies ist normalerweise eine einfache Aufnahme von einem möglichst impulsähnlichen Geräusch, wie es in dem Raum zu finden ist, den Sie modellieren möchten. Zum Beispiel, wenn Sie den Hall in Ihrem Badezimmer modellieren möchten, könnten Sie ein Mikrofon in der Nähe der Tür aufstellen, um das Geräusch eines platzenden Ballons oder eines synthetisierten Impulses vom Waschbecken aufzunehmen. Diese Audioaufnahme könnte dann als Buffer verwendet werden.
Dieser Audio-Buffer muss dieselbe Abtastrate wie der AudioContext
haben, sonst wird eine Ausnahme ausgelöst. Zum Zeitpunkt der Einstellung dieses Attributs werden der Buffer und der Zustand des Attributs verwendet, um den ConvolverNode
mit dieser Impulsantwort und der gegebenen Normalisierung zu konfigurieren. 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.
Weitere vollständige angewandte Beispiele/Informationen finden Sie in unserem Voice-change-O-matic Demo (siehe app.js für den unten auszugsweise eingefügten Code).
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 |
Browser-Kompatibilität
BCD tables only load in the browser