Skip to main content

RecordingConfig

@siteed/audio-studio


@siteed/audio-studio / RecordingConfig

Interface: RecordingConfig

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

Properties

android?

optional android: AndroidConfig

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

Android-specific configuration


autoResumeAfterInterruption?

optional autoResumeAfterInterruption: boolean

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

Whether to automatically resume recording after an interruption (default is false)


bufferDurationSeconds?

optional bufferDurationSeconds: number

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

Buffer duration in seconds. Controls the size of audio buffers used during recording. Smaller values reduce latency but increase CPU usage. Larger values improve efficiency but increase latency.

Platform Notes:

  • iOS/macOS: Minimum effective 0.1s, uses accumulation below
  • Android: Respects all sizes within hardware limits
  • Web: Fully configurable

Default: undefined (uses platform default ~23ms at 44.1kHz) Recommended: 0.01 - 0.5 seconds Optimal iOS: >= 0.1 seconds


channels?

optional channels: 1 | 2

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

Number of audio channels (1 for mono, 2 for stereo)


deviceDisconnectionBehavior?

optional deviceDisconnectionBehavior: DeviceDisconnectionBehaviorType

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

How to handle device disconnection during recording


deviceId?

optional deviceId: string

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

ID of the device to use for recording (if not specified, uses default)


enableProcessing?

optional enableProcessing: boolean

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

Enable audio processing (default is false)


encoding?

optional encoding: EncodingType

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

Encoding type for the recording.

Platform limitations:

  • pcm_8bit: Android only (iOS/Web will fallback to pcm_16bit with warning)
  • pcm_16bit: All platforms (recommended for cross-platform compatibility)
  • pcm_32bit: All platforms

The library will automatically validate and adjust the encoding based on platform capabilities. A warning will be logged if fallback is required.

Default

'pcm_16bit'

See


features?

optional features: AudioFeaturesOptions

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

Feature options to extract during audio processing


filename?

optional filename: string

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

Optional filename for the recording (uses UUID if not provided)


interval?

optional interval: number

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

Interval in milliseconds at which to emit recording data (minimum: 10ms)


intervalAnalysis?

optional intervalAnalysis: number

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

Interval in milliseconds at which to emit analysis data (minimum: 10ms)


ios?

optional ios: IOSConfig

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

iOS-specific configuration


keepAwake?

optional keepAwake: boolean

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

Keep the device awake while recording (default is false)


notification?

optional notification: NotificationConfig

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

Configuration for the notification


onAudioAnalysis()?

optional onAudioAnalysis: (_) => Promise<void>

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

Callback function to handle audio features extraction results

Parameters

_

AudioAnalysisEvent

Returns

Promise<void>


onAudioStream()?

optional onAudioStream: (_) => Promise<void>

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

Callback function to handle audio stream data

Parameters

_

AudioDataEvent

Returns

Promise<void>


onRecordingInterrupted()?

optional onRecordingInterrupted: (_) => void

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

Optional callback to handle recording interruptions

Parameters

_

RecordingInterruptionEvent

Returns

void


output?

optional output: OutputConfig

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

Configuration for audio output files

Examples:

  • Primary only (default): { primary: { enabled: true } }
  • Compressed only: { primary: { enabled: false }, compressed: { enabled: true, format: 'aac' } }
  • Both outputs: { compressed: { enabled: true } }
  • Streaming only: { primary: { enabled: false } }

outputDirectory?

optional outputDirectory: string

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

Optional directory path where output files will be saved


sampleRate?

optional sampleRate: SampleRate

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

Sample rate for recording in Hz (16000, 44100, or 48000)


segmentDurationMs?

optional segmentDurationMs: number

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

Duration of each segment in milliseconds for analysis (default: 100)


showNotification?

optional showNotification: boolean

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

Show a notification during recording (default is false)


showWaveformInNotification?

optional showWaveformInNotification: boolean

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

Show waveform in the notification (Android only, when showNotification is true)


streamFormat?

optional streamFormat: "float32" | "raw"

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

Format for the audio stream data delivered to onAudioStream.

  • 'raw' (default): base64-encoded PCM bytes on native, Float32Array on web
  • 'float32': Float32Array with samples in [-1, 1] on all platforms. Eliminates base64 encode/decode overhead on the native bridge. Android (new arch): delivered as Float32Array via JSI. iOS: delivered as regular Array<number>, normalized to Float32Array in JS.

Default

'raw'

web?

optional web: WebConfig

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

Web-specific configuration options