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

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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
buffer

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
See implementation notes.

Voir aussi