1. Web
  2. Les API Web
  3. AudioBuffer
  4. AudioBuffer.getChannelData()

Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

AudioBuffer.getChannelData()

Baseline Large disponibilité

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 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

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

js
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écifications

Spécification
Web Audio API
# dom-audiobuffer-getchanneldata

Compatibilité des navigateurs

Voir aussi

Aider à améliorer MDN

Apprendre à contribuer

Cette page a été modifiée le par les contributeur·ice·s du MDN.

AltStyle によって変換されたページ (->オリジナル) /