Waveform-Audio再生の音量を変更する
[このページに関連付けられている機能 、波形オーディオは、従来の機能です。 WASAPI とオーディオ グラフに置き換わりました。 WASAPI とオーディオ グラフは、Windows 10とWindows 11用に最適化されています。 可能な場合は、新しいコードで波形オーディオではなく WASAPI と Audio Graph を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
Windows には、波形オーディオ出力デバイスのボリューム レベルを照会および設定するための次の関数が用意されています。
機能 | 説明 |
---|---|
waveOutGetVolume | 指定した波形オーディオ出力デバイスの現在のボリューム レベルを取得します。 |
waveOutSetVolume | 指定した波形オーディオ出力デバイスの音量レベルを設定します。 |
すべての波形オーディオ デバイスでボリュームの変更がサポートされているわけではありません。 一部のデバイスでは、左右両方のチャネルで個々のボリューム制御がサポートされています。 波形オーディオ デバイスの音量制御機能を決定する方法については、「 デバイスとデータ型」を参照してください。
一部のアプリケーションでは、ユーザーがシステム内のすべてのオーディオ デバイスのボリュームを制御できます。 (この種類の多くのアプリケーションでは、オーディオ ミキサー サービスを使用します。詳細については、「 オーディオ ミキサー」を参照してください)。アプリケーションでこの種のマスター ボリューム制御が可能でない限り、ボリュームを変更する前にオーディオ デバイスを開く必要があります。 また、ボリューム レベルを変更する前にクエリを実行し、ボリューム レベルをできるだけ早く前のレベルに復元する必要があります。
ボリュームは doubleword 値で指定されます。 オーディオ形式がステレオの場合、上位 16 ビットは右チャネルの相対ボリュームを指定し、下位の 16 ビットは左チャネルの相対ボリュームを指定します。 左右のチャネルのボリューム制御をサポートしていないデバイスの場合、下位の 16 ビットはボリューム レベルを指定し、上位 16 ビットは無視されます。
ボリューム レベルの値は、0x0 (無音) から0xFFFF (最大ボリューム) までの範囲であり、対数的に解釈されます。 ボリュームレベルを0x5000から0x6000に増やす場合、ボリュームレベルは0x4000から0x5000に増加するため、認識されるボリュームの増加は同じです。