import * as React from 'react'; import { type TrackReference } from '@livekit/components-core'; import { useEnsureTrackRef } from '../../context'; import { useMultibandTrackVolume } from '../../hooks'; /** * @public * @deprecated Use BarVisualizer instead */ export interface AudioVisualizerProps extends React.HTMLAttributes { trackRef?: TrackReference; } /** * The AudioVisualizer component is used to visualize the audio volume of a given audio track. * @remarks * Requires a `TrackReferenceOrPlaceholder` to be provided either as a property or via the `TrackRefContext`. * @example * ```tsx * * ``` * @public * @deprecated Use BarVisualizer instead */ export const AudioVisualizer: ( props: AudioVisualizerProps & React.RefAttributes, ) => React.ReactNode = /* @__PURE__ */ React.forwardRef( function AudioVisualizer({ trackRef, ...props }: AudioVisualizerProps, ref) { const svgWidth = 200; const svgHeight = 90; const barWidth = 6; const barSpacing = 4; const volMultiplier = 50; const barCount = 7; const trackReference = useEnsureTrackRef(trackRef); const volumes = useMultibandTrackVolume(trackReference, { bands: 7, loPass: 300 }); return ( {volumes.map((vol, idx) => ( ))} ); }, );