Migration
Guide for upgrading between Kodio versions.
0.0.5 to 0.0.6
Error types are now classes for proper stack traces:
when (error) {
AudioError.PermissionDenied -> ...
AudioError.NotInitialized -> ...
}
when (error) {
is AudioError.PermissionDenied -> ...
is AudioError.NotInitialized -> ...
}
Session API to high-level API
val session = SystemAudioSystem.createRecordingSession()
session.start()
delay(5000)
session.stop()
val audioFlow = session.audioFlow.value!!
val recording = Kodio.record(duration = 5.seconds)
recording.play()
Compose migration
var session by remember { ... }
var isRecording by remember { ... }
DisposableEffect(Unit) { ... }
val recorderState = rememberRecorderState()
Button(onClick = { recorderState.toggle() }) { ... }
Accessing sessions
The session API is still available for advanced use:
@Suppress("DEPRECATION")
val session = recorder.underlyingSession()
Last modified: 13 January 2026