Hi – our Zoom app in development is for audio post-production collaboration. The app plays back a shared high-quality audio + video stream inside the app’s webview. Because the meeting’s echo cancellation has no reference for audio rendered in the webview, an open Zoom mic re-captures the playing stream into the meeting. To prevent this, the app mutes the user’s Zoom mic while the stream transport is playing and restores it on stop:
const state = await zoomSdk.getAudioState(); // { audio: bool }
await zoomSdk.setAudioState({ audio: false }); // on start
...
await zoomSdk.setAudioState({ audio: true }); // on stop
Problem:
On every call to setAudioState (in both directions) the participants get a dialogue asking for permission to let the app do the mute/unmute: “[App Name] wants to mute/unmute your audio” . This is a little heavy handed for our use case and is more strict than the host specifically muting someone manually (in that case the mute is activated and the dialogue just informs the participant about it).
Environment:
@zoom/appssdk 0.16.40
Zoom desktop client 7.0.5 on macOS 13.5
The app is in development and unpublished.
Questions:
Is there any way to give a onetime consent to mute/unmute in this case, or any settings I can change to remove the prompt or align the behavior more with the “host manually muting participants” case?
Thanks very much for the response. Unfortunately the issue is not just in the unmute direction (this might actually be manageable). But in the mute direction as well. Anytime we call .setAudioState(), these message boxes come up with Allow and Don’t Allow buttons.
(Sorry the forum does not allow me to post screenshots)
“[App Name] Wants to Mute Audio”
and
“[App Name] Wants to Unmute Audio”
The selections are also not sticky, so they re-appear each time. Also strangely I don’t seem to have that permissions option you circled when I schedule meetings (Just “Q&A” followed by “Automatically record meeting on local computer”, etc)
I’m now on Zoom 7.1.5 on Mac 13.5. Maybe the missing option is a subscription level thing? (I’m on the free version).