次の方法で共有


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

関連項目

KSPROPSETID_AudioLoopback

AUDIOLOOPBACK_TAPPOINT_TYPE 列挙型

KSATTRIBUTE_AUDIOLOOPBACK_TAPPOINT 構造体