Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 当静音状态未知时,如何写入静音逻辑_C_Mute_Open Source - Fatal编程技术网

C 当静音状态未知时,如何写入静音逻辑

C 当静音状态未知时,如何写入静音逻辑,c,mute,open-source,C,Mute,Open Source,我正在为OSS4编写一个指示器声音克隆。设置音量现在可以了,但是我的程序在静音方面遇到了问题 关于OSS4中静音的几个事实: vmix没有静音(我们使用vmix进行音量控制) 此外,控制音量的“媒体键”方式并没有设置静音控制,而是音量=0 问题是,当读取vmix卷并遇到零时,我们不知道用户是否已将其实际设置为零,或已将其设置为其他值,但已启用静音 当OSS4的vmix中没有中央静音的概念,而其他音量控制器在内部处理静音时,我应该如何编写静音逻辑 我不熟悉vmix或OSS,所以这可能有点离题

我正在为OSS4编写一个
指示器声音
克隆。设置音量现在可以了,但是我的程序在静音方面遇到了问题

关于OSS4中静音的几个事实:

  • vmix没有静音(我们使用vmix进行音量控制)
  • 此外,控制音量的“媒体键”方式并没有设置静音控制,而是音量=0
问题是,当读取vmix卷并遇到零时,我们不知道用户是否已将其实际设置为零,或已将其设置为其他值,但已启用静音

当OSS4的vmix中没有中央静音的概念,而其他音量控制器在内部处理静音时,我应该如何编写静音逻辑


我不熟悉
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

我相信,当处理媒体热键的程序也能保持静音状态时,可能会出现问题,但我会尝试一下。谢谢不幸的是,这仍然存在一个问题,即现在有两个静音处理程序;一个在这个程序中,另一个在我的程序之外的媒体热键处理程序中。出现问题,例如按下“静音键”时不知道它是静音的。这很难。你能参与热键活动吗?