AudioBufferSourceNode.buffer
        
        
          
                Baseline
                
                  Widely available
                
                
              
        
        
        
          
                
              
                
              
                
              
        
        
      
      Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
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
Chargement…