@lobehub/tts
Version:
A high-quality & reliable TTS React Hooks library
21 lines (19 loc) • 835 B
JavaScript
import { useAudioVisualizer } from "../hooks/useAudioVisualizer.mjs";
import { memo } from "react";
import { jsx } from "react/jsx-runtime";
import { cssVar } from "antd-style";
//#region src/react/AudioVisualizer/Visualizer.tsx
const Visualizer = memo(({ audioRef, count = 4, width = 48, color, ...barStyle }) => {
const maxHeight = barStyle?.maxHeight || width * 3;
const minHeight = barStyle?.minHeight || width;
const borderRadius = barStyle?.borderRadius || width / 2;
return useAudioVisualizer(audioRef, { count }).map((bar, index) => /* @__PURE__ */ jsx("div", { style: {
background: color || cssVar.colorPrimary,
borderRadius,
height: minHeight + bar / 255 * (maxHeight - minHeight),
transition: "height 50ms cubic-bezier(.2,-0.5,.8,1.5)",
width
} }, index));
});
//#endregion
export { Visualizer as default };