I'm finding that when you mute via
room.localParticipant.setMicrophoneEnabled(false)
and then later unmute via
room.localParticipant.setMicrophoneEnabled(true)
iOS registers unmute -> mute -> unmute in rapid succession. The final result is still unmute but rapidly firing these actions may cause problems and makes the mute state flicker. I know this is happening because I am using a custom native module to enable CallKit and I added logging whenever a mute action takes place. If I unmute using the CallKit UI then I see only one event so I know it's related to webrtc/LiveKit.
This might be related to livekit/client-sdk-react-native#287
@livekit/react-native@2.9.6
@livekit/react-native-expo-plugin@1.0.1
@livekit/react-native-webrtc@137.0.2