KSPROPERTY_AUDIOLOOPBACK
KSPROPERTY_AUDIOLOOPBACK プロパティは、ループバック タップ ポイントがプレまたはポスト ボリュームおよびミュートかを示します。
Windows 11 24H2 以降では、KSPROPERTY_AUDIOLOOPBACK プロパティを設定する必要があります。
用法の要点テーブル
取得 | 設定 | 対象 | プロパティ記述子の種類 | プロパティ値の種類 |
---|---|---|---|---|
はい | いいえ | ピン | KSATTRIBUTE_AUDIOLOOPBACK_TAPPOINT | KSATTRIBUTE 構造体 |
KSPROPERTY_AUDIOLOOPBACK は、次のプロパティが実装された、KSPROPSETID_AudioLoopback に関連付けられているプロパティの列挙型です。
typedef enum {
KSPROPERTY_AUDIOLOOPBACK_TAPPOINT_CAPS,
} KSPROPERTY_AUDIOLOOPBACK;
Windows AudioEndpointBuilder では、KSPROPSETID_AudioLoopback とKSPROPERTY_AUDIOLOOPBACK_TAPPOINT_CAPS を使用して、AUDIOLOOPBACK_TAPPOINT_CAPS_<*>
を取得します。 これにより、オーディオ エンドポイントがプレ ボリューム ループバック、ポスト ボリューム ループバック、またはその両方を実行できるかどうかが OS に通知されます。
その後、ピンの作成時に、OS は属性 KSATTRIBUTEID_AUDIOLOOPBACK_TAPPOINT を KSATTRIBUTE_AUDIOLOOPBACK_TAPPOINT と共に提供して、プレ ボリュームまたはポスト ボリュームとしてループバック ピンを作成するかどうかを伝えます。
タップポイントのキャップは次のように定義されます。
#define AUDIOLOOPBACK_TAPPOINT_CAPS_PREVOLUMEMUTE (0x1)
#define AUDIOLOOPBACK_TAPPOINT_CAPS_POSTVOLUMEMUTE (0x2)
ksmedia.h で使用できる KSATTRIBUTE_AUDIOLOOPBACK_TAPPOINT 構造体は、ストリーム グラフ内でループバックをタップする場所に関する AUDIO_LOOPBACK_TAPPOINT_TYPE 属性を指定するためのラッパーを提供できます。
戻り値
KSPROPERTY_AUDIOLOOPBACK プロパティ要求は、正常に完了したことを示すために STATUS_SUCCESS を返します。 それ以外の場合、要求は適切なエラー状態コードを返します。
解説
オーディオ システムは、次のように要約できます。
- 信号処理出力: オフロードからの、またはホスト プロバイダーから直接の、信号処理の出力。
- 音量: フローの次のステップで、オーディオ信号の音量が調整されるところ。
- ミュート: このステージでは、必要に応じてオーディオ信号がミュートされます。
- EFX (エフェクト): ここでは、オーディオ信号にエフェクトが適用されます。
- 出力: 処理されたオーディオ信号が出力される最終ステージ。
ハードウェア オーディオ エンジンを搭載したシステムでは、ループバック ピンを実装する必要があります。 ループバック ピンは、すべての信号処理が適用された後、ミックスされたオーディオ出力を返します。
ループバック ストリームは、エンドポイント音量とミュートの影響も受けます。 このプロパティを使用すると、アプリケーションは、エンドポイント音量とミュートを適用する前または適用した後にループバック ストリームを返すかどうかを選択できます。
オーディオ ドライバーは、オーディオ エンジンの出力ピンをフィルターのループバック ピンに接続する必要があります。 ループバック ピンは、カテゴリを KSNODETYPE_AUDIO_LOOPBACK として公開する必要があります。 ループバックでは、信号処理モードは実装されません。
OS は、ループバック タップ ポイント機能についてオーディオ ドライバーに対してクエリを実行できます。 機能は、フラグのビット マスクとして返されます。
ループバック ピンで作成されたストリームは、DSP ミックス出力を収集し、それをキャプチャ ストリームとして OS に返します。 ドライバーが OS からオプションを取得する方法の 1 つは、ストリーム属性を使用することです。 ループバック ストリームに属性が適用されていない場合は、音量とミュートがミキサー出力で適用される前にループバックを収集する必要があります。
ユーザー モード クライアントの場合、プレ ボリューム ループバックとポスト ボリューム ループバックの切り替えは、AUDCLNT_STREAMOPTIONS_POST_VOLUME_LOOPBACK 経由で行われ、SetClientProperties を呼び出すときに AUDCLNT_STREAMOPTIONS (audioclient.h) として渡されます。
KSNODETYPE_AUDIO_LOOPBACK
KSNODETYPE_AUDIO_LOOPBACK は、オーディオ ループバック機能を表します。 次に示すように ksmedia.h で定義されています。
#define STATIC_KSNODETYPE_AUDIO_LOOPBACK\
0x8f42c0b2, 0x91ce, 0x4bcf, 0x9c, 0xcd, 0xe, 0x59, 0x90, 0x37, 0xab, 0x35
DEFINE_GUIDSTRUCT("8F42C0B2-91CE-4BCF-9CCD-0E599037AB35", KSNODETYPE_AUDIO_LOOPBACK);
#define KSNODETYPE_AUDIO_LOOPBACK DEFINE_GUIDNAMED(KSNODETYPE_AUDIO_LOOPBACK)
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 11 バージョン 24H2 |
ヘッダー | Ksmedia.h |