RecordingConfig
@siteed/audio-studio / RecordingConfig
Interface: RecordingConfig
Defined in: src/AudioStudio.types.ts:393
Properties
android?
optionalandroid:AndroidConfig
Defined in: src/AudioStudio.types.ts:453
Android-specific configuration
autoResumeAfterInterruption?
optionalautoResumeAfterInterruption:boolean
Defined in: src/AudioStudio.types.ts:482
Whether to automatically resume recording after an interruption (default is false)
bufferDurationSeconds?
optionalbufferDurationSeconds:number
Defined in: src/AudioStudio.types.ts:512
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?
optionalchannels:1|2
Defined in: src/AudioStudio.types.ts:398
Number of audio channels (1 for mono, 2 for stereo)
deviceDisconnectionBehavior?
optionaldeviceDisconnectionBehavior:DeviceDisconnectionBehaviorType
Defined in: src/AudioStudio.types.ts:496
How to handle device disconnection during recording
deviceId?
optionaldeviceId:string
Defined in: src/AudioStudio.types.ts:493
ID of the device to use for recording (if not specified, uses default)
enableProcessing?
optionalenableProcessing:boolean
Defined in: src/AudioStudio.types.ts:436
Enable audio processing (default is false)
encoding?
optionalencoding:EncodingType
Defined in: src/AudioStudio.types.ts:415
Encoding type for the recording.
Platform limitations:
pcm_8bit: Android only (iOS/Web will fallback topcm_16bitwith 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?
optionalfeatures:AudioFeaturesOptions
Defined in: src/AudioStudio.types.ts:462
Feature options to extract during audio processing
filename?
optionalfilename:string
Defined in: src/AudioStudio.types.ts:490
Optional filename for the recording (uses UUID if not provided)
interval?
optionalinterval:number
Defined in: src/AudioStudio.types.ts:418
Interval in milliseconds at which to emit recording data (minimum: 10ms)
intervalAnalysis?
optionalintervalAnalysis:number
Defined in: src/AudioStudio.types.ts:421
Interval in milliseconds at which to emit analysis data (minimum: 10ms)
ios?
optionalios:IOSConfig
Defined in: src/AudioStudio.types.ts:450
iOS-specific configuration
keepAwake?
optionalkeepAwake:boolean
Defined in: src/AudioStudio.types.ts:424
Keep the device awake while recording (default is false)
keepFullAnalysis?
optionalkeepFullAnalysis:boolean
Defined in: src/AudioStudio.types.ts:447
Whether useAudioRecorder should retain every audio-analysis data point
and attach the full history to stopRecording().analysisData.
Defaults to true for backwards compatibility. Set to false for
long-running recordings when you only need live analysisData state or
per-callback onAudioAnalysis chunks; this avoids unbounded JS memory
growth in the hook without disabling native analysis processing.
notification?
optionalnotification:NotificationConfig
Defined in: src/AudioStudio.types.ts:433
Configuration for the notification
onAudioAnalysis()?
optionalonAudioAnalysis: (_) =>Promise<void>
Defined in: src/AudioStudio.types.ts:468
Callback function to handle audio features extraction results
Parameters
_
AudioAnalysisEvent
Returns
Promise<void>
onAudioStream()?
optionalonAudioStream: (_) =>Promise<void>
Defined in: src/AudioStudio.types.ts:465
Callback function to handle audio stream data
Parameters
_
Returns
Promise<void>
onRecordingInterrupted()?
optionalonRecordingInterrupted: (_) =>void
Defined in: src/AudioStudio.types.ts:485
Optional callback to handle recording interruptions
Parameters
_
Returns
void
output?
optionaloutput:OutputConfig
Defined in: src/AudioStudio.types.ts:479
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?
optionaloutputDirectory:string
Defined in: src/AudioStudio.types.ts:488
Optional directory path where output files will be saved
sampleRate?
optionalsampleRate:SampleRate
Defined in: src/AudioStudio.types.ts:395
Sample rate for recording in Hz (16000, 44100, or 48000)
segmentDurationMs?
optionalsegmentDurationMs:number
Defined in: src/AudioStudio.types.ts:459
Duration of each segment in milliseconds for analysis (default: 100)
showNotification?
optionalshowNotification:boolean
Defined in: src/AudioStudio.types.ts:427
Show a notification during recording (default is false)
showWaveformInNotification?
optionalshowWaveformInNotification:boolean
Defined in: src/AudioStudio.types.ts:430
Show waveform in the notification (Android only, when showNotification is true)
streamFormat?
optionalstreamFormat:"float32"|"raw"
Defined in: src/AudioStudio.types.ts:525
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?
optionalweb:WebConfig
Defined in: src/AudioStudio.types.ts:456
Web-specific configuration options