次の方法で共有


KSPROPERTY_AUDIO_PEAKMETER2

Windows 8 では、ピークメーター ノードが最後にリセットされてからピークメーター ノード (KSNODETYPE_PEAKMETER) で発生した最大オーディオ信号レベルを報告する、KSPROPERTY_AUDIO_PEAKMETER2 プロパティが導入されました。

用法の要点テーブル

Yammer の入手 設定 移行先 プロパティ記述子の種類 プロパティ値の種類

はい

いいえ

Filter または Pin インスタンスを使用したノード

KSNODEPROPERTY_AUDIO_CHANNEL

LONG

プロパティ値 (操作データ) は LONG 型で、ノードのピーク サンプル値を指定します。 ピーク値が負の場合は、その絶対値が使用されます。

戻り値

KSPROPERTY_AUDIO_PEAKMETER2 プロパティ要求は、正常に完了したことを示すために STATUS_SUCCESS を返します。 それ以外の場合、要求は適切なエラー状態コードを返します。 次のテーブルに、発生する可能性のあるエラー コードを示します。

状態コード 意味

STATUS_NOT_IMPLEMENTED

KS フィルターは、ピークメーターの現在の値を返すことができません。

解説

KSPROPERTY_AUDIO_PEAKMETER2 プロパティは、KSPROPERTY_AUDIO_PEAKMETER プロパティとほぼ同じです。 KSPROPERTY_AUDIO_PEAKMETER2 プロパティは、ピン トポロジのハードウェア使用状況測定を改善するために、Windows 8 で導入されました。 レガシ KSPROPERTY_AUDIO_PEAKMETER プロパティは非推奨のため、今後は使用しないでください。

SignedMinimum を (0x8000ではなく) LONG_MIN に設定し、SignedMaximum を (0x7fffではなく) LONG_MAX に設定する必要があります。 また、ピークメーターの値はこのスケールに対する相対値であり、スケールは振幅に対して線形であることにご注意ください。

そのため、たとえば、負のピークと正のピークがそれぞれ -1 と +1 の波形がある場合 (-1 から +1 までのスケールの場合)、LONG_MAX のピークメーター値は、特定の時間枠に対する最大波形値を正確に報告します。 逆に、すべての波形の値が 0 であるサイレンスを報告するには、ゼロ (0) のピークメーター値を使用する必要があります。 しかし、ピーク値がゼロ (0) から LONG_MAX のに該当する波形の場合は、報告される波形値は元の波形値から線形に減少します。

したがって、-0.5 と +0.5 の間で振れる波形の場合 (-1 から +1 までのスケールの場合)、ピークメーター値を LONG_MAX/2 に設定する必要があります。

KS オーディオ フィルターは、このプロパティ要求を同期処理します。 要求が成功すると、ピークメーターはリセットされ、累積ピーク値が 0 に初期化されます。 要求が成功しない場合、ピークメーターは変更されません。

システムは、IRQL PASSIVE_LEVEL で KSPROPERTY_AUDIO_PEAKMETER2 プロパティのIOCTL_KS_PROPERTY 要求を送信します。

要件

ヘッダー

ksmedia.h (Ksmedia.h をインクルード)

関連項目

KSNODEPROPERTY_AUDIO_CHANNEL

KSNODETYPE_PEAKMETER

KSPROPERTY_AUDIO_PEAKMETER