2017-01-28 8 views
0

私はウィンドウの量を40%または50%に固定する必要がありますか? これ以降は、固定値ではなく、以前の値+新しい値に設定するだけです。ウィンドウの音量を変更するには?

#include <windows.h> 
#pragma comment(lib, "winmm") 

// to mute: 
waveOutSetVolume(NULL, 0); 

// full volume: 
waveOutSetVolume(NULL, 0xFFFF); 

答えて

1

waveOutSetVolumeのドキュメントがdwVolumeパラメータがどのように解釈されるか、説明しています

下位ワードは、左チャンネルの音量設定が含まれており、上位ワードは、右が含まれていますチャンネル設定。 [...]
デバイスが左右のボリュームコントロールをサポートしていない場合、dwVolumeの下位ワードはボリュームレベルを指定し、上位ワードは無視されます。すなわち

は、上位及び下位語の両方が(0〜65535)と同じ値であるボリュームに対するDWORD値を構築しなければなりません。それはまだ動作していないいくつかの理由 -

DWORD VolumeValue(const int percentage) { 
    // Clamp percentage value 
    int p = min(100, max(0, percentage)); 
    // Calculate scaled value for one channel 
    const WORD wVol = static_cast<WORD>(::MulDiv(65535, p, 100)); 
    // Construct return value for both channels 
    const DWORD retVal = ((wVol << 16) | wVol); 
    return retVal; 
} 
+0

https://paste.ubuntu.com/23898336/:

次の関数はパーセンテージを指定する整数入力に基づいて適切な値を返しますか?何か案が。 – YumYumYum

関連する問題