Description
On iOS, toggling the microphone with setMicrophoneEnabled(true/false) still produces an audible iOS system beep (audio session reconfiguration sound) on each toggle.
This is the same issue as #287. PRs #1793 and #1794 in client-sdk-js fixed the mute cycling / unnecessary track restart, but the beep persists.
We also tried using mediaStreamTrack.enabled directly (bypassing LiveKit's mute), which produces the same beep.
Environment
livekit-client: 2.18.1
@livekit/react-native: latest
@livekit/react-native-webrtc: latest
- iOS 18, iPhone
- Expo / React Native
Reproduction
- Join a LiveKit room with audio enabled
- Call
room.localParticipant.setMicrophoneEnabled(false)
- Call
room.localParticipant.setMicrophoneEnabled(true)
- Observe iOS system beep on each call
Expected
Silent mute/unmute toggle with no iOS audio session sounds.
Workaround
Using mediaStreamTrack.enabled with a guard to skip redundant assignments reduces the beep to only actual state changes, but doesn't eliminate it entirely.
Description
On iOS, toggling the microphone with
setMicrophoneEnabled(true/false)still produces an audible iOS system beep (audio session reconfiguration sound) on each toggle.This is the same issue as #287. PRs #1793 and #1794 in
client-sdk-jsfixed the mute cycling / unnecessary track restart, but the beep persists.We also tried using
mediaStreamTrack.enableddirectly (bypassing LiveKit's mute), which produces the same beep.Environment
livekit-client: 2.18.1@livekit/react-native: latest@livekit/react-native-webrtc: latestReproduction
room.localParticipant.setMicrophoneEnabled(false)room.localParticipant.setMicrophoneEnabled(true)Expected
Silent mute/unmute toggle with no iOS audio session sounds.
Workaround
Using
mediaStreamTrack.enabledwith a guard to skip redundant assignments reduces the beep to only actual state changes, but doesn't eliminate it entirely.