Circle V2 API Docs
    Preparing search index...

    Module @repo/use-record-audio

    @repo/use-record-audio

    React hooks for browser audio capture. It exports useRecordAudio (MediaRecorder-based recording with chunked storage), useMicStream (raw microphone access), useMicAnalyser (audio visualization data), useAudioDevices (device enumeration), and useSilenceDetection. Chunk storage uses IndexedDB via idb-keyval.

    %%{init:{"theme":"dark"}}%% graph TD use_record_audio["@repo/use-record-audio"] errors["@repo/errors"] safe["@repo/safe"] typescript_config["@repo/typescript-config"] vitest_config["@repo/vitest-config"] use_record_audio --> errors use_record_audio --> safe use_record_audio -.-> typescript_config use_record_audio -.-> vitest_config
    %%{init:{"theme":"default"}}%% graph TD use_record_audio["@repo/use-record-audio"] errors["@repo/errors"] safe["@repo/safe"] typescript_config["@repo/typescript-config"] vitest_config["@repo/vitest-config"] use_record_audio --> errors use_record_audio --> safe use_record_audio -.-> typescript_config use_record_audio -.-> vitest_config
    graph TD
      use_record_audio["@repo/use-record-audio"]
      errors["@repo/errors"]
      safe["@repo/safe"]
      typescript_config["@repo/typescript-config"]
      vitest_config["@repo/vitest-config"]
      use_record_audio --> errors
      use_record_audio --> safe
      use_record_audio -.-> typescript_config
      use_record_audio -.-> vitest_config
    import { useRecordAudio } from "@repo/use-record-audio";

    function Recorder() {
    const { start, stop, state, audioUrl } = useRecordAudio();

    return (
    <div>
    <button onClick={state === "recording" ? stop : start}>
    {state === "recording" ? "Stop" : "Record"}
    </button>
    {audioUrl && <audio src={audioUrl} controls />}
    </div>
    );
    }
    Script Description
    lint Run Biome checks
    check-types Typecheck with tsc --noEmit
    test Run Vitest with coverage
    test:watch Run Vitest in watch mode

    Classes

    MediaRecorderError
    RecordingAssembleError
    RecordingNoCaptureError
    RecordingPauseError
    RecordingResumeError
    RecordingStartError

    Type Aliases

    AudioPermissionState
    ComposeAudioStreamsResult
    DesktopAudioSource
    RecordingState
    UseAudioDevicesReturn
    UseMicAnalyserReturn
    UseMicStreamReturn
    UseRecordAudioReturn
    UseSilenceDetectionReturn

    Variables

    shouldUseDirectStreamRecording

    Functions

    captureSystemAudio
    composeAudioStreams
    extensionForMimeType
    shouldUseWebKitRecordingPath
    useAudioDevices
    useMicAnalyser
    useMicStream
    useRecordAudio
    useSilenceDetection