我知道 fftSize
和 getByteTimeDomainData
是链接的,因为 fftSize
的长度与 getByteTimeDomainData
数组的长度相同。
const audioContext = new AudioContext();
const audioSourceNode = audioContext.createMediaElementSource(audio);
const analyserNode = audioContext.createAnalyser();
analyserNode.fftSize = 256;
const bufferTimeDomainLength = analyserNode.fftSize;
console.log(bufferTimeDomainLength)
const dataTimeDomainArray = new Uint8Array(bufferTimeDomainLength);
audioSourceNode.connect(analyserNode);
analyserNode.connect(audioContext.destination);
setTimeout(loop, 1000);
function loop() {
analyserNode.getByteTimeDomainData(dataTimeDomainArray);
for (let i = 0; i < bufferTimeDomainLength; i++) {
let v = dataTimeDomainArray[i];
console.log(v + " - " + i);
}
}
我的大问题是它代表v
。它是该样本的幅度还是箱号?我实际上已经阅读了 Mozilla 开发人员文档,但我仍然什么都不懂。