AudioBufferSourceNode.buffer
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
js
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.
js
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