Kodio 0.1.1 Help

Low-Level API

Direct session access for advanced use cases like custom audio processing pipelines.

Recording session

val session = SystemAudioSystem.createRecordingSession() session.start() delay(5.seconds) session.stop() val audioFlow = session.audioFlow.value val recording = AudioRecording.fromAudioFlow(audioFlow!!)

Playback session

val session = SystemAudioSystem.createPlaybackSession() session.load(audioFlow) session.play() session.state.first { it is AudioPlaybackSession.State.Finished } session.stop()

Live processing

Process audio in real-time while recording:

val session = SystemAudioSystem.createRecordingSession() session.start() session.audioFlow.value?.collect { chunk -> val amplitude = calculateRMS(chunk) updateWaveform(amplitude) }

AudioFlow

val audioFlow = AudioFlow( format = AudioFormat( sampleRate = 44100, channels = Channels.Mono, encoding = SampleEncoding.PcmInt(IntBitDepth.Sixteen) ), data = flow { emit(chunk) } )

SystemAudioSystem

val inputs = SystemAudioSystem.listInputDevices() val outputs = SystemAudioSystem.listOutputDevices() val recordingSession = SystemAudioSystem.createRecordingSession(device) val playbackSession = SystemAudioSystem.createPlaybackSession(device)
Last modified: 13 January 2026