Electron SDK: MuteAudio and UnMuteAudio not working on participants

Description
The following methods are not working when called on other participants as a Host:

  • zoomaudio.MeetingAudio_MuteAudio({ userid: <id>, allowunmutebyself: true })
  • zoomaudio.MeetingAudio_UnMuteAudio({ userid: <id> })

Which version?
Latest v4.6.21666.0428

Base SDK versions:
win32 native sdk version:zoom-sdk.4.6.21666.0428
mac native sdk version:All_mac_sdk_4.6.21666.0427

To Reproduce

  1. Download, build and run Zoom SDK Electron Demo in Mac.
  2. Go with default domain, insert valid SDK key+secret, join a meeting without login.
  3. Test zoomaudio.MeetingAudio_MuteAudio and zoomaudio.MeetingAudio_UnMuteAudio with different User IDs.
  4. They only work on myself and only IF I’M HOST, but never work on other participants even if I’m the Host.
  5. Note that muting / unmuting VIDEO actually works as expected on all participants when I’m the Host, so the problem only happens with Audio muting / unmuting actions.

Tested cases

As a participant

  1. Cannot Mute / Unmute Audio myself, I should be able to.
  2. Cannot Mute / Unmute Audio any other participant, this is ok since I’m no Host.

As the Host

  1. Can Mute / Unmute Audio myself, this is expected.
  2. Cannot Mute / Unmute Audio any other participant, I should be able to. Seems like function calls do nothing, nobody gets asked to unmute because of host request, nobody gets muted, etc.

Additional context
As the Host, I actually can mute / unmute audio of other users through the Zoom UI, so it’s definitely not a problem related with roles or the meeting itself.

Thank you so much for your help in advance as well as for the effort of providing a way for us to make useful features through SDKs!

Hi desko27,

Thanks for using Zoom SDK and providing the info. Really appreciate it. I will pass this to the engineering team for further investigation. Will back to you once I have any updates.

Thanks!

Hi @Carson_Chen, I’m looking forward to build awesome stuff with your Electron SDK. I’ll stay tuned.

Thanks!

Indeed, I have the same issue here.

Hi desko27,

Looking forward to seeing the awesome integration :heart_eyes:. The engineering team was able to identify an issue based on your post and we will fix it in the next release.

Thanks!

@Carson_Chen glad to hear that!

Is the fix going to be part of an actual SDK Electron release? I understand that, in order to benefit from the fix, I’ll need to update the code in my Electron App once the new SDK Electron release is published. Is that so?

Thanks!

Hi @desko27,

Yes, that’s correct. In most cases, once the new SDK release is published, you could simply replace the old SDK libraries with the new one and it will still work. You may follow our Github repo for any updates:https://github.com/zoom/zoom-sdk-electron

Thanks!

Hi @Carson_Chen

Is there any expected date when the release is expected.

We are working with teachers to take online classes with students. This is somewhat a critical issue as the teacher would want to mute the students.

Atul

i also have this sdk version and i’m able to mute and unmute guest without problems (99% of time).
(i use a custom modified version of main.js on top of the plain sdk and libs)

@Carson_Chen
sometimes i can say only 1% of our guest can “escape” the rule and unmute by herself, is this the bug in this version ?
where is the problem ?
can you give us file and line reference to try to fix before your release ?
is this bug affect only mac or win sdk ?

Thanks

@f.barone The issue is happening on Mac for me. I’m not able to programmatically mute/unmute from the SDK, although I can do it from the adjacent Zoom UI which loads together with our Electron App.

I didn’t have the chance to try it on Windows so I don’t know if the issue also happens on it. Are you running on Windows? Maybe the issue only happens on Mac?

yes running on windows, i updated the sdk the day its come off and no problem to mute/unmute via this function on main.js

muteAudio: function(userid, allowunmutebyself) {
    let opts = {
      userid: userid,
      allowunmutebyself: allowunmutebyself
    }
    let ret = zoomaudio.MeetingAudio_MuteAudio(opts);
  },
  unMuteAudio: function(userid) {
    let opts = {
      userid: userid
    }
    let ret = zoomaudio.MeetingAudio_UnMuteAudio(opts);
  },

but i only updated the sdk and lib folders

Oh, thank you for sharing @f.barone, based on that… seems like a Mac-only issue then :open_mouth:

Hi Atul,

Thanks for the reply. I do not have the exact date for the next release yet. You may follow our Github repo https://github.com/zoom/zoom-sdk-electron for any updates.

Thanks!

Hi @f.barone,

Thanks for reporting this. Hmm…This sounds unexpected. Could you provide any additional info regarding the 1% situation?

Thanks!

i try to fuigure out but its only a presupposition.

the meeting is set to “allow participants to unmute themeself”

the app use the user-host priviledge.

my program manage an external list of user that change over time,

let’s say 2 people can talk the other stay mute,
the program call the getparticipant list and listen to the “onUserAudioStatusChange”

if an user try to open the mic the “app” call the : muteAudio(userId,false);
if an user try to mute the mic the “app” call the : unMuteAudio(userid);

sometimes if an user keep pushing the mic, it seeems that is invulnerable to the muteAudio(). and this user still invulnerable for all the meeting duration even if we close the host-app and reconnect.

the command if i remember say only error #2 on mute or unmute command :confused:

it’s like the situation when the meeting is set to “don’t allow participant to unmute…” and when you call the unmute the client ask the permission to unmute… so the host get the error for unMuteAudio.

Now in the next 4 days i hope to not have this problem, with the bad news on permission to unmute we must set to “don’t allow participant to unmute themeself” and the poor users must learn how to open and close the mic on zoom :confused:

The only alternative is to write and deploy a modified client in c++ but we don’t have time and resources to do it in this small time :confused:

PS: permission to unmute user is really good for plain system and privacy concern but is really bad for app who integrate with zoom where the user barely know what is a videoconference… :confused:

1 Like

the other strange situation is that the sdk (who use the host-user to call the command) can’t mute the mic but the connected zoom client can mute the user from the zoom-ui !

So is like the sdk keep giving error on the mute command even if is work in the zoom-ui.

In the next meetings i try to log for you the userid and errors (y).

Hi

Please try to listen to the onUserJoin callback for the userID, and try not to use the userID in the onUserAudioStatusChange at the moment, we have identified an issue with this interface, will fix it in the next release.

Thanks!

Hi @Carson_Chen,

Is this issue fixed in the latest (2020-06-30) release? It doesn’t seem to be covered in the changelog.

Updating my App comes with a cost and I’d prefer not to if a fix for this has not been included yet.

Oh, I see it was a problem with the MacOS SDK and it has been fixed there. So, last Electron SDK version should benefit from the fix, right? :smiley:

Thanks!

Hi @desko27,

If an issue is fixed in the Windows SDK or MacOS SDK, then the Electron SDK will inherit the fix since it is based on the 2 native SDKs. :slight_smile: