2010-12-27 6 views
0

OSS4のクローンをindicator-soundと書いています。音量の設定は今はうまくいきますが、私のプログラムのミュートの面で問題があります。ミュート状態が不明のときにミュートロジックを書き込む方法

OSS4にミュートについての事実のカップル:

  • vmixミュートを持っていない(と私たちは、ボリュームコントロールのためのvmixを使用)
  • また、ボリュームのdoesnを制御する「メディア・キーの道

この問題は、vmixボリュームを読み込んでゼロに遭遇したときに、ユーザーが実際にゼロに設定しているかどうかわからない、または他の値に設定していますが、ミュートしています。

OSS4のvmixや他のボリュームコントローラで中央ミュートの概念がない場合、ミュートロジックはどのように記述すればよいですか?

git code, if that helps

答えて

1

私は

あなたがあなた自身のシステムに2つの変数を追加することができます...ので、これは道オフになる場合もあり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 
+0

私は問題のプログラムがメディアを扱うこと際に私自身のミュート状態を維持することがあるかもしれないと考えていますホットキーも同様ですが、私はそれに行きます。ありがとう! –

+0

残念ながら、これにはまだ2つのミュートハンドラが存在するという問題があります。このプログラムでは1つ、プログラム外のメディアホットキーハンドラでは1つです。 「ミュートキー」を押してもミュートされていないという問題が発生します。 –

+0

これは大雑把です。あなたはホットキーのイベントに触れることができますか? – mtrw

関連する問題