AnalyserNode.frequencyBinCount - кількісті значень даних які повертаються при аналізу частот звуку.
AnalyserNode.frequencyBinCount;
AnalyserNode - об'єкти AnalyserNode.
frequencyBinCount властивість об'єкта AnalyserNode яка повертає кількісті значень даних які повертаються при аналізу частот звуку. Ця властивість є половиною fftSize.
Можливі значення: 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192 і 16384. Значення позамовчуванню 16384.
if(window.AudioContext){
var audio = new AudioContext();
var analis=audio.createAnalyser();
analis.connect(audio.destination);
analis.fftSize=128;
alert(analis.frequencyBinCount); //64 = fftSize/2
}else alert('Ваш браузер не підтримує Web Audio');
if(window.AudioContext){
var audio = new AudioContext();
var player = document.getElementById('player');
var source = audio.createMediaElementSource(player);
var analis=audio.createAnalyser();
var canvas=document.getElementById('canvas');
var ctx=canvas.getContext('2d');
source.connect(analis);
analis.connect(audio.destination);
analis.fftSize=1024;
dani = new Uint8Array(analis.frequencyBinCount);
function draw(){ //функція яка відображає отримані дані частот на полотні canvas
analis.getByteTimeDomainData(dani);
ctx.fillStyle='black';
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle='red';
var w=Math.ceil(canvas.width/dani.length);
for(var i=0,x=0;i<dani.length;i++,x+=w)
ctx.fillRect(x,dani[i],w,canvas.height);
setTimeout(draw,50); //або requestAnimationFrame(draw)
}
draw();
player.play();
}else alert('Ваш браузер не підтримує Web Audio');