/** * useAudioLevels Hook * React hook for VU meter / audio level monitoring * Provides real-time audio levels from the AudioMixer */ import type { IngestControllerV2 } from "@livepeer-frameworks/streamcrafter-core"; export interface AudioLevels { level: number; peakLevel: number; } export interface UseAudioLevelsOptions { /** IngestControllerV2 instance to monitor */ controller: IngestControllerV2 | null; /** Whether to automatically start monitoring (default: true) */ autoStart?: boolean; } export interface UseAudioLevelsReturn { /** Current audio levels */ levels: AudioLevels; /** Whether level monitoring is active */ isMonitoring: boolean; /** Start level monitoring */ startMonitoring: () => void; /** Stop level monitoring */ stopMonitoring: () => void; } /** * Hook for monitoring audio levels (VU meter) * * @example * ```tsx * const { controller } = useStreamCrafterV2({ whipUrl }); * const { levels, isMonitoring } = useAudioLevels({ controller }); * * return ( *