AudioBufferSourceNode.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.
La propriété buffer
de l'interface AudioBufferSourceNode
donne la possibilité de lire un son en utilisant un objet AudioBuffer
comme ressource audio.
Si la propriété buffer
a la valeur null
, le nœud génère un canal unique silencieux (chaque échantillon vaut 0
).
Syntaxe
AudioBufferSourceNode.buffer = soundBuffer;
Valeur
Un objet AudioBuffer
qui contient les données représentant le son que le nœud va lire.
Exemple
Note : Pour un exemple complet, voir cette démonstration, ou le code source correspondant.
let AudioContext = window.AudioContext || window.webkitAudioContext;
let audioCtx;
// Stereo
let channels = 2;
function init() {
audioCtx = new AudioContext();
}
button.onclick = function () {
if (!audioCtx) {
init();
}
// On crée un tampon stéréo vide de deux secondes
// qui utilise l'échantillonage de AudioContext
let frameCount = audioCtx.sampleRate * 2.0;
let myArrayBuffer = audioCtx.createBuffer(
channels,
frameCount,
audioCtx.sampleRate,
);
// On remplit le buffer avec du bruit blanc ;
// soit des valeurs entre -1.0 et 1.0
for (let channel = 0; channel < channels; channel++) {
// Voici le calcul du tableau réel qui contient
// les données
let nowBuffering = myArrayBuffer.getChannelData(channel);
for (let i = 0; i < frameCount; i++) {
// Math.random() donne une valeur sur [0; 1.0]
// audio doit être sur [-1.0; 1.0]
nowBuffering[i] = Math.random() * 2 - 1;
}
}
// On récupère un AudioBufferSourceNode.
// C'est l'objet AudioNode à utiliser pour lire
// un AudioBuffer
let source = audioCtx.createBufferSource();
// on passe le buffer avec AudioBufferSourceNode
source.buffer = myArrayBuffer;
// on connecte le nœud AudioBufferSourceNode à
// la destination afin d'entendre le son
source.connect(audioCtx.destination);
// on lance la lecture
source.start();
source.onended = () => {
console.log("Bruit blanc terminé");
};
};
Spécifications
Specification |
---|
Web Audio API # dom-audiobuffersourcenode-buffer |
Compatibilité navigateurs
BCD tables only load in the browser