Skip to main content

UseAudioRecorderState

@siteed/audio-studio


@siteed/audio-studio / UseAudioRecorderState

Interface: UseAudioRecorderState

Defined in: src/AudioStudio.types.ts:654

Properties​

analysisData?​

optional analysisData: AudioAnalysis

Defined in: src/AudioStudio.types.ts:714

Analysis data for the recording if processing was enabled


compression?​

optional compression: CompressionInfo

Defined in: src/AudioStudio.types.ts:712

Information about compression if enabled


durationMs​

durationMs: number

Defined in: src/AudioStudio.types.ts:708

Duration of the current recording in milliseconds


isPaused​

isPaused: boolean

Defined in: src/AudioStudio.types.ts:706

Indicates whether recording is in a paused state


isRecording​

isRecording: boolean

Defined in: src/AudioStudio.types.ts:704

Indicates whether recording is currently active


onRecordingInterrupted()?​

optional onRecordingInterrupted: (_) => void

Defined in: src/AudioStudio.types.ts:716

Optional callback to handle recording interruptions

Parameters​

_​

RecordingInterruptionEvent

Returns​

void


pauseRecording()​

pauseRecording: () => Promise<void>

Defined in: src/AudioStudio.types.ts:700

Pauses the current recording

Returns​

Promise<void>


prepareRecording()​

prepareRecording: (_) => Promise<void>

Defined in: src/AudioStudio.types.ts:694

Prepares recording with the specified configuration without starting it.

This method eliminates the latency between calling startRecording and the actual recording beginning. It pre-initializes all audio resources, requests permissions, and sets up audio sessions in advance, allowing for true zero-latency recording start when startRecording is called later.

Technical benefits:

  • Eliminates audio pipeline initialization delay (50-300ms depending on platform)
  • Pre-allocates audio buffers to avoid memory allocation during recording start
  • Initializes audio hardware in advance (particularly important on iOS)
  • Requests and verifies permissions before the critical recording moment

Use this method when:

  • You need zero-latency recording start (e.g., voice commands, musical applications)
  • You're building time-sensitive applications where missing initial audio would be problematic
  • You want to prepare resources during app initialization, screen loading, or preceding user interaction
  • You need to ensure recording starts reliably and instantly on all platforms

Parameters​

_​

RecordingConfig

Returns​

Promise<void>

A promise that resolves when preparation is complete

Example​

// Prepare during component mounting
useEffect(() => {
prepareRecording({
sampleRate: 44100,
channels: 1,
encoding: 'pcm_16bit',
});
}, []);

// Later when user taps record button, it starts with zero latency
const handleRecordPress = () => startRecording({
sampleRate: 44100,
channels: 1,
encoding: 'pcm_16bit',
});

resumeRecording()​

resumeRecording: () => Promise<void>

Defined in: src/AudioStudio.types.ts:702

Resumes a paused recording

Returns​

Promise<void>


size​

size: number

Defined in: src/AudioStudio.types.ts:710

Size of the recorded audio in bytes


startRecording()​

startRecording: (_) => Promise<StartRecordingResult>

Defined in: src/AudioStudio.types.ts:696

Starts recording with the specified configuration

Parameters​

_​

RecordingConfig

Returns​

Promise<StartRecordingResult>


stopRecording()​

stopRecording: () => Promise<null | AudioRecording>

Defined in: src/AudioStudio.types.ts:698

Stops the current recording and returns the recording data

Returns​

Promise<null | AudioRecording>