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;
}
https://paste.ubuntu.com/23898336/:
次の関数はパーセンテージを指定する整数入力に基づいて適切な値を返しますか?何か案が。 – YumYumYum