Audio Session Manager
Android implementation of AudioSessionManager.
Manages AudioFocus for coordinated player/recorder usage.
Cross-platform audio session manager (ADR-016).
Coordinates audio session/focus for player and recorder to work together. Without coordination, iOS AVAudioSession and Android AudioFocus race conditions cause silent playback or dropped recordings.
Quick Start
Kotlin
AudioSessionManager.configure(AudioMode.PLAY_AND_RECORD, echoCancellation = true)
AudioSessionManager.addFocusListener(object : AudioFocusListener {
override fun onFocusGained() { player.play() }
override fun onFocusLost(transient: Boolean) { player.pause() }
override fun onDuck() { player.setVolume(0.3f) }
})
AudioSessionManager.deactivate()Swift
AudioSessionManager.configure(mode: .playAndRecord, echoCancellation: true)
// On iOS, also exposes hardwareSampleRate for ADR-017 passthrough
let hwRate = AudioSessionManager.hardwareSampleRateSee also
Uses AudioSessionManager for playback session
Uses AudioSessionManager for recording session
Playback / Recording / PlayAndRecord modes
iOS implementation of AudioSessionManager.
Manages AVAudioSession configuration for coordinated player/recorder usage.
Properties
Current active mode, or null if not configured.
The hardware's preferred sample rate for audio recording.
AEC is not currently supported on Android for singing/music use cases.
Check if acoustic echo cancellation (AEC) is available on this device.
iOS always supports AEC through VoiceChat mode (all versions) or setPrefersEchoCancelledInput (iOS 18.2+).