Skip to main content

UseAudioRecorderState

@siteed/audio-studio


@siteed/audio-studio / UseAudioRecorderState

Interface: UseAudioRecorderState

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

Properties

analysisData?

optional analysisData: AudioAnalysis

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

Analysis data for the recording if processing was enabled


compression?

optional compression: CompressionInfo

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

Information about compression if enabled


durationMs

durationMs: number

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

Duration of the current recording in milliseconds


isPaused

isPaused: boolean

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

Indicates whether recording is in a paused state


isRecording

isRecording: boolean

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

Indicates whether recording is currently active


onRecordingInterrupted()?

optional onRecordingInterrupted: (_) => void

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

Optional callback to handle recording interruptions

Parameters

_

RecordingInterruptionEvent

Returns

void


pauseRecording()

pauseRecording: () => Promise<void>

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

Pauses the current recording

Returns

Promise<void>


prepareRecording()

prepareRecording: (_) => Promise<void>

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

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:688

Resumes a paused recording

Returns

Promise<void>


size

size: number

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

Size of the recorded audio in bytes


startRecording()

startRecording: (_) => Promise<StartRecordingResult>

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

Starts recording with the specified configuration

Parameters

_

RecordingConfig

Returns

Promise<StartRecordingResult>


stopRecording()

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

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

Stops the current recording and returns the recording data

Returns

Promise<null | AudioRecording>