sound-visualizer
Version:
39 lines (36 loc) • 884 B
JavaScript
import {
startAnalysis
} from "./chunk-XPCAL55N.mjs";
import {
drawCurrentWave
} from "./chunk-JBV6426I.mjs";
import {
clearCanvas
} from "./chunk-GVWDEUAU.mjs";
// src/current/main.ts
function currentVisualizer(audio, canvas, drawOptions) {
let animationFrameId = null;
const { analyse, disconnect } = startAnalysis(audio);
function start() {
if (animationFrameId !== null)
cancelAnimationFrame(animationFrameId);
function tick() {
drawCurrentWave(canvas, analyse(), drawOptions);
animationFrameId = requestAnimationFrame(tick);
}
animationFrameId = requestAnimationFrame(tick);
}
function stop() {
if (animationFrameId !== null)
cancelAnimationFrame(animationFrameId);
disconnect();
}
function reset() {
stop();
clearCanvas(canvas);
}
return { start, stop, reset };
}
export {
currentVisualizer
};