AnalyserNode.frequencyBinCount
La propriété
frequencyBinCount
de l'objet AnalyserNode
est un nombre entier non signé équivalent à la moitié la taille de la FFT. Il correspond en général au nombre de valeurs que vous aurez à manipuler pour la visualisation.Syntaxe
var contexteAudio = new AudioContext();
var analyseur = contexteAudio.createAnalyser();
var tailleMemoireTampon = analyseur.frequencyBinCount;
Valeur
Un nombre entier non signé.
Example
L'exemple suivant montre comment créer simplement un AnalyserNode
avec AudioContext
, puis utiliser requestAnimationFrame
et <canvas>
pour collecter les données temporelles et dessiner un oscilloscopeen sortie. Pour des exemples plus complets, voir notre démo Voice-change-O-matic (et en particulier app.js lines 128–205).
var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
var analyseur = contexteAudio.createAnalyser();
analyseur.minDecibels = -90;
analyseur.maxDecibels = -10;
...
analyseur.fftSize = 256;
var tailleMemoireTampon = analyseur.frequencyBinCount;
console.log(tailleMemoireTampon);
var tableauDonnees = new Uint8Array(tailleMemoireTampon);
contexteCanvas.clearRect(0, 0, LARGEUR, HAUTEUR);
function dessiner() {
dessin = requestAnimationFrame(dessiner);
analyseur.getByteFrequencyData(tableauDonnees);
contexteCanvas.fillStyle = 'rgb(0, 0, 0)';
contexteCanvas.fillRect(0, 0, LARGEUR, HAUTEUR);
var largeurBarre = (LARGEUR / tailleMemoireTampon) * 2.5 - 1;
var hauteurBarre;
var x = 0;
for(var i = 0; i < tailleMemoireTampon; i++) {
hauteurBarre = tableauDonnees[i];
contexteCanvas.fillStyle = 'rgb(' + (hauteurBarre+100) + ',50,50)';
contexteCanvas.fillRect(x,HAUTEUR-hauteurBarre/2,largeurBarre,hauteurBarre/2);
x += largeurBarre;
}
};
dessiner();
Spécification
Spécification | Statut | Commentaire |
---|---|---|
Web Audio API La définition de 'frequencyBinCount' 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 | 10.0webkit | (Oui) | 25.0 (25.0) | Pas de support | 15.0webkit 22 (unprefixed) |
6.0webkit |
Fonctionnalité | Android | Edge | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|
Support basique | ? | (Oui) | 26.0 | 1.2 | ? | ? | ? | 33.0 |