AnalyserNode.fftSize - розмір FFT.
AnalyserNode.fftSize;
AnalyserNode - об'єкти AnalyserNode.
fftSize властивість об'єкта AnalyserNode яка повертає/задає розмір швидке перетворення Фур'є (FFT). Цей параметр вказує скільки даних отримаємо при аналізу частот і буде рівним fftSize/2, що містить властивість frequencyBinCount.
Можливі значення: 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, і 32768. Значення позамовчуванню 2048.
if(window.AudioContext){
var audio = new AudioContext();
var analis=audio.createAnalyser();
analis.connect(audio.destination);
alert(analis.fftSize);
}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=64;
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/32);
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');