我正在为OSS4编写一个indicator-sound
克隆。设置音量现在工作正常,但我的程序静音方面有问题。
关于在OSS4中静音的几个事实:
这个问题是,当读取vmix音量并遇到零时,我们不知道用户是否实际将其设置为零,或者是否将其设置为其他值,但是已静音。
当OSS4的vmix中没有中央静音概念并且其他音量控制器在内部处理静音时,我应该如何编写静音逻辑?
答案 0 :(得分:1)
我不熟悉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
当用户打开静音时,您可以设置静音标记(可以在UI上反映)并记录音量值,然后将音量设置为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