In the Stream view, toggleMicrophone only flips the encoder-level enabled gate (audioEnabled wired into Publish.Audio.Encoder), while the microphone capture source itself stays active. The OS mic-in-use indicator therefore remains on while the user believes they are muted, which conflicts with common mute/privacy expectations.
This behavior predates the MoQ stack migration (#675) — on main, toggleMicrophone similarly sets publish.audio.enabled without stopping capture — and was surfaced by a review note on #675 (#675 (comment)).
Possible fix: gate the MicrophoneHandle capture enabled signal (releasing the device) instead of, or in addition to, the encoder gate — weighing re-acquisition latency on unmute.
Written by Devin
In the Stream view,
toggleMicrophoneonly flips the encoder-level enabled gate (audioEnabledwired intoPublish.Audio.Encoder), while the microphone capture source itself stays active. The OS mic-in-use indicator therefore remains on while the user believes they are muted, which conflicts with common mute/privacy expectations.This behavior predates the MoQ stack migration (#675) — on
main,toggleMicrophonesimilarly setspublish.audio.enabledwithout stopping capture — and was surfaced by a review note on #675 (#675 (comment)).Possible fix: gate the
MicrophoneHandlecaptureenabledsignal (releasing the device) instead of, or in addition to, the encoder gate — weighing re-acquisition latency on unmute.Written by Devin