muteAllUserAudioLocally and iOS Safari

version: Video SDK Web 1.12.14

Description
We would like to give our users 2 buttons: 1 button to mute themselves and another button to mute their own speaker/all audio from other participants. When a user joins the call, they can either press the mic button (to unmute themselves) or the speaker button (to listen to everyone else). This works great in all browsers we’ve tested except for iOS Safari.

In the case of iOS Safari, when a user clicks the mic to unmute themselves, their speaker also becomes active and they can hear the other participants. To try and prevent this, we are calling muteAllUserAudioLocally on that user’s device after calling startAudio but nothing happens. The promise fulfills but the speaker still plays the other participants audio.

When the user manually clicks the speaker button to mute the other participants, calling muteAllUserAudioLocally works fine. This is only a problem when they first startAudio.

We are getting around this by querying the DOM for audio elements and manually setting muted to true.

Is there some way to ensure that the speaker/output audio is off when a user starts audio via iOS Safari?

Hey @sammy.nave

Thanks for your feedback.

It’s a known issue in Video SDK Web, where volume is only partially supported on iOS Safari.

The workaround you implemented is appropriate, and we plan to address this issue in a future release.

Thanks
Vic