次の方法で共有


ソフトウェア ボリューム コントロールのサポート

Windows Vista 以降では、ソフトウェア ボリュームのサポートは、物理ボリュームコントロールに関連付けられたアンプを含まないオーディオ ハードウェアに対して提供されます。

次の図は、Windows ソフトウェア ボリュームのサポートの簡略化された表現を示しています。

2 つのオーディオ データ パスを使用した Windows ソフトウェア ボリュームのサポートの簡略化された表現を示す図。

この図は、2 つの個別のオーディオ データ パスを示しています。 アンプが存在する場合と、Windows APO ソフトウェアボリュームコントロールを使用する場合の 1 つ。 アンプが存在する場合、ドライバはKSPROPERTY_AUDIO_VOLUMELEVELを通知します。 オーディオ ドライバーがKSPROPERTY_AUDIO_VOLUMELEVELをサポートしていることを示していない場合、Windows オーディオ エンジンはソフトウェア ボリューム コントロール APO を作成します。

一般的な PC では、コンピューターにオーディオ コンポーネントのセットが 1 つ存在するため、これらのデータ パスの 1 つだけが存在します。 ここでは、説明のために 2 つのパスを示します。

IAudioEndpointVolume インターフェイスは、オーディオ エンドポイント デバイス間のオーディオ ストリーム上のボリューム コントロールを表します。

Bluetoothまたは USB オーディオが存在する場合、ボリューム コントロールは個別に制御されます。

アンプが存在するデータ パス

クライアント アプリケーションが、アンプと物理ボリューム コントロールが存在する構成で IAudioEndpointVolume インターフェイスを呼び出すと、オーディオ ドライバーはトポロジ フィルターでKSNODETYPE_VOLUME ノードを公開します。 ボリューム ノードが存在すると、 IAudioEndpointVolume はオーディオ信号のボリューム レベルがハードウェアによって変更されることを認識します。

アンプが存在しないデータ パス

アンプが存在しない場合、 IAudioEndpointVolume はオーディオ エンジンと連携して、Windows ソフトウェア ボリューム サポート APO を初期化します。

モデル化する物理ボリューム制御がないため、KSNODETYPE_VOLUME ノードはトポロジ フィルターで公開されません。 ボリュームの減衰とゲインは、APO ソフトウェア ボリューム サポート コンポーネントによって実行されます。

さまざまなバージョンの Windows のボリューム範囲と既定のボリューム レベルについては、「 既定のオーディオ ボリューム設定」を参照してください。