in src/hooks/sdk/useLocalAudioInputActivity.tsx [47:77]
function analyserNodeCallback() {
if (!analyserNode) {
return;
}
if (frameIndex === 0) {
analyserNode.getByteTimeDomainData(data);
const lowest = 0.01;
let max = lowest;
for (const f of data as any) {
max = Math.max(max, (f - 128) / 128);
}
const decimal = (Math.log(lowest) - Math.log(max)) / Math.log(lowest);
if (lastDecimal !== decimal) {
lastDecimal = decimal;
if (cb) {
cb(decimal);
}
}
}
frameIndex = (frameIndex + 1) % 2;
if (restart) {
setTimeout(initializePreview, 500);
} else if (isMounted) {
requestAnimationFrame(analyserNodeCallback);
}
}