New participant audio not muted despite muteAllUserAudioLocally call

Hi @vic.yang

We are using the Zoom Video SDK and have configured the session with speakerPrivacy: true in the preSessionConfig. We expect that no remote user audio should be played locally unless explicitly unmuted.

Here’s what we’re doing:

  • Setting speakerPrivacy: true before session join
  • Waiting for both session and audio to reach Connected state
  • Then calling:
mediaStream.muteAllUserAudioLocally();

This call runs successfully — no errors — and seems to work initially.

However, the issue:

  • When a new participant joins, their audio is still played through the local speaker
  • Also, if an existing participant starts speaking, their audio also plays locally
  • Calling muteAllUserAudioLocally() inside the user-added event does not resolve it
  • The only thing that works is when the user manually unmutes and remutes — then the mute behavior is enforced correctly

It seems like muteAllUserAudioLocally() does not consistently apply when speakerPrivacy is enabled, especially for newly joined participants.

Are we missing something in the expected behavior of speakerPrivacy combined with local mute?
Is there a specific sequence or workaround needed to keep all participant audio muted locally, including late joiners?

Would appreciate any insights. Thanks!

Hey @freelancer.nak

Thanks for your feedback.

This is indeed our bug — we didn’t account for the new user scenario. We’ll fix this in a future version.

Currently, a workaround for it is:

Listen to the user-updated event. If the remote participant’s audio changes from '' to 'computer', then consecutively call

await stream.unmuteAllUserAudioLocally();
await stream.muteAllUserAudioLocally();

This ensures that newly joined users can also be muted.

Thanks
Vic

2 Likes

Hey @Vic — thank you for the quick response and confirmation!

Really appreciate you acknowledging the bug. We’ll go ahead and implement the suggested workaround using the user-updated event and the unmuteAllUserAudioLocally()muteAllUserAudioLocally() sequence.

Looking forward to the official fix in a future release.

Thanks again,
Naeem

This topic was automatically closed 25 hours after the last reply. New replies are no longer allowed.