Я не знаком с vmix
или OSS
, так что это может быть далеко ...
Вы можете добавить две переменные в свою собственную систему: флаг для поддержания состояния отключения звука и значение для сохранения самого последнего звука без звука.
OnMuteEvent
if MuteFlag //we were muted, now unmuting
MuteFlag = False
vmix current volume = LastVolume
else //we were unmuted, now muting
MuteFlag = True
LastVolume = vmix current volume
vmix current volume = 0
Когда пользователь включает звук, вы устанавливаете флаг отключения звука, который вы можете отобразить в вашем пользовательском интерфейсе, и записываете значение громкости, затем устанавливаете громкость на 0. Когда пользователь выключает звук, установите громкость обратно на зарегистрированное значение и уберите флаг.
Если ваше приложение можно запустить, когда пользователь, возможно, уже установил состояние отключения звука, вы можете выполнить его инициализацию следующим образом:
if vmix.volume is 0 //might be mute!
MuteFlag = True //assume it was due to being muted
LastVolume = MaxVolume/2 //some sensible volume for when we unmute