次の方法で共有


ソフトウェア音量制御のサポート

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

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

Diagram showing simplified representation of Windows software volume support with two audio data paths.

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

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

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

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

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

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

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

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

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

Windows のさまざまなバージョンの音量範囲とデフォルトの音量レベルについては、デフォルトのオーディオ音量設定を参照してください。