Turn off incoming audio but keep outgoing audio open

Description
When two users land on the same page in my react application, I start an audio call between them. They could be connected on a call through any other app (E.g: Discord, teams, gmeet etc)
My use case is to use live transcription to transcribe whatever they speak when they are on this page. However, I do not want them to hear each other via the zoom SDK. Essentially I want their outgoing audio to be transmitted but do not want each other to hear it on the other side. I am aware of the muteAllUserAudioLocally() method but until the other person accepts the browser permission for the mic access, they can still hear each other. Is there a way to call muteAllUserAudioLocally() right when the user joins the session using join() instead of calling it after .startAudio()?

This is my current implementation.

 init: () => Promise<void> = async () => {
    this.zoomClient = ZoomVideo.createClient();
    await this.zoomClient.init('en-US', 'CDN');

    const signature = await this.fetchSDKSignature();
    await this.zoomClient.join(this.slug, signature, this.zoomScreenName);

    this.mediaStream = this.zoomClient.getMediaStream();

    if (this.zoomClient.isHost()) {
      this.transcriptionClient = this.zoomClient.getLiveTranscriptionClient();
    }

    this.bindEventListeners();
    await this.mediaStream.startAudio();
    await this.mediaStream.muteAllUserAudioLocally();

    if (this.transcriptionClient) {
      await this.transcriptionClient.startLiveTranscription();
    }

    this.hasSessionStarted = true;
  };

I have tried the following but none of them worked.

  • Removing await on .startAudio()
  • Calling .muteAllUserAudioLocally() before .startAudio()
  • Calling .muteAllUserAudioLocally()after.join()`

Which Web Video SDK version?
1.12.12

  • Device: Macbook Pro
  • OS: macOS 15.3.1 (24D70)
  • Browser: Chrome
  • Browser Version: 133.0.6943.143 (Official Build) (arm64)

Hey @Sohan

Thanks for your feedback.

Currently, we don’t support calling muteAllUserAudioLocally() before the audio is connected.

Thanks
Vic