damp-kite-83575
05/09/2026, 5:49 PMtall-airline-16756
05/09/2026, 5:49 PMtall-airline-16756
05/09/2026, 5:49 PMsetMicrophoneEnabled or re-creating the LocalAudioTrack restore audio consistently? If you haven’t tried, does explicitly calling localParticipant.setMicrophoneEnabled(true) after connect help?
If you prefer, provide a minimal repro (brief steps or small code snippet showing how you create/connect and enable microphone) and I’ll point out areas to try next.
Next steps I’ll suggest after you answer:
• Check device logs for permission or audio routing errors.
• Confirm microphone permission flow and explicitly enable mic after connect.
• Try repro on a clean project with the same package versions to isolate conflicts.
Answer the platform, device, and log questions and I’ll give precise troubleshooting steps.
Sources: [Flutter iOS] SoundWaveformWidget / AudioVisualizerWidget Not Working (Miss... | Text and transcriptions | LiveKit Documentation, with interactive elementsdamp-kite-83575
05/09/2026, 5:57 PM@livekit/react-native-expo-plugin ^1.0.1. The issue appears on [iOS / Android / both] — [primary: iOS if that’s true].
2. Devices
We test on physical devices, not simulators (voice/WebRTC). i'm using iphone 16pro
3. Logs when audio fails
When the call connects but there’s no AI speech and no mic input, we sometimes see:
• LiveKit connects and publishes the mic track (`publishing track`/`kind: audio`looks normal).
• Earlier we saw`OSStatus error 561017449`/`Error setting category`/`AVAudioSessionErrorCodeIncompatibleCategory`when another layer tried to change`AVAudioSession`after connect.
• We use`expo-audio`(setAudioModeAsync) for awaiting-lobby ringtone; stopping/unloading it around the same time we join the LiveKit room. That timing matchesintermittentbehavior (first call worse, sometimes OK on retry).
4. Microphone permission
We [request mic permission before the call / describe your flow]. Permission is not permanently denied in Settings when this happens — the OS mic indicator sometimes briefly shows then stops, which fits audio session / routing rather than a denied permission prompt every time.
5. Other audio / conflicts
Yes: expo-audio for ringtone and setAudioModeAsync (we moved toward mixWithOthers / non-recording modes for the ringtone to reduce fighting LiveKit). We also use AudioSession.configureAudio / startAudioSession from @livekit/react-native before connecting.
6. Does toggling the mic help?
Sometimes — explicitly localParticipant.setMicrophoneEnabled(false) then true after connect can recover capture; it’s not 100% reliable. Upgrading from @livekit/react-native-webrtc ~137 to ~144 is when connect OK but no duplex audio became intermittent.
Package versions (current)
• `@livekit/react-native-webrtc`:^144.0.0
• `@livekit/react-native-expo-plugin`:^1.0.1
• `@livekit/react-native`:^2.9.1
• `@livekit/components-react`:^2.9.14
• `livekit-client`:^2.15.5
Can you confirm whether 144 vs 137 changed default audio session / WebRTC audio unit behavior on iOS/Android, and recommend official pattern for LiveKit + Expo + another audio module (ringtone) so AVAudioSession isn’t torn down on connect? Should we registerGlobals() with specific options, avoid configureAudio + useIOSAudioManagement together, or use a specific order: ringtone teardown → setAppleAudioConfiguration → setMicrophoneEnabled(true)?tall-airline-16756
05/09/2026, 5:57 PM