We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

AudioBuffer.getChannelData()

La méthode getChannelData() de l'interface AudioBuffer renvoie un Float32Array contenant les données PCM associées au canal spécifié (0 correspondant au premier canal).

Syntaxe

var tableauDonnees = contexteAudio.createBuffer(nombreCanaux, nombreFrames, contexteAudio.sampleRate);
var tampon = tableauDonnees.getChannelData(canal);

Valeur

Un Float32Array.

Exemple

Dans l'exemple suivant crée un buffer de 2 secondes, le remplit avec du bruit blanc puis le lit via un AudioBufferSourceNode. Vous pouvez aussi exécuter le code, or voir le code source.

var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
var bouton = document.querySelector('button');
var preformate = document.querySelector('pre');
var monScript = document.querySelector('script');

preformate.innerHTML = monScript.innerHTML;

// Stéréo
var nombreCanaux = 2;
// Crée un buffer vide de 2 secondes
// au taux d'échantillonage du contexte audio
var nombreFrames = contexteAudio.sampleRate * 2.0;

var tableauDonnees = contexteAudio.createBuffer(nombreCanaux, nombreFrames, contexteAudio.sampleRate);

bouton.onclick = function() {
  // remplit la mémoire tampon avec du bruit blanc
  // valeurs aléatoires entre -1.0 et 1.0
  for (var canal = 0; canal < nombreCanaux; canal++) {
    // génère le tableau contenant les données
    var tampon = tableauDonnees.getChannelData(canal);
    for (var i = 0; i < nombreFrames; i++) {
      // Math.random() donne une valeur comprise entre [0; 1.0]
      // l'audio doit être compris entre [-1.0; 1.0]
      tampon[i] = Math.random() * 2 - 1;
    }
  }

  // Récupère un AudioBufferSourceNode.
  // C'est un AudioNode à utiliser quand on veut jouer AudioBuffer
  var source = contexteAudio.createBufferSource();

  // assigne le buffer au AudioBufferSourceNode
  source.buffer = tableauDonnees;

  // connecte le AudioBufferSourceNode avec
  // la destination pour qu'on puisse entendre le son
  source.connect(contexteAudio.destination);

  // lance la lecture du so
  source.start();
}

Paramètres

channel
The channel property is an index representing the particular channel to get data for. An index value of 0 represents the first channel. If the channel index value is greater than of equal to AudioBuffer.numberOfChannels, an INDEX_SIZE_ERR exception will be thrown.

Spécification

Spécification Statut Commentaire
Web Audio API
La définition de 'getChannelData' dans cette spécification.
Version de travail  

Compatibilité navigateurs

Nous convertissons les données de compatibilité dans un format JSON. Ce tableau de compatibilité utilise encore l'ancien format car nous n'avons pas encore converti les données qu'il contient. Vous pouvez nous aider en contribuant !

Fonctionnalité Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support basique 14 webkit (Oui) 23 Pas de support 15 webkit
22 (unprefixed)
6 webkit
Fonctionnalité Android Chrome Edge Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile
Support basique Pas de support 28 webkit (Oui) 25 1.2 Pas de support Pas de support webkit

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : marie-ototoi
Dernière mise à jour par : marie-ototoi,