IAudioEndpointVolume::GetVolumeStepInfo メソッド (endpointvolume.h)
GetVolumeStepInfo メソッドは、ボリューム範囲内の現在のステップに関する情報を取得します。
構文
HRESULT GetVolumeStepInfo(
[out] UINT *pnStep,
[out] UINT *pnStepCount
);
パラメーター
[out] pnStep
メソッドが現在のステップ インデックスを書き込む UINT 変数へのポインター。 このインデックスは、0 から *pStepCount– 1 までの範囲の値です。ここで、0 は最小ボリューム レベルを表し、 *pStepCount– 1 は最大レベルを表します。
[out] pnStepCount
メソッドがボリューム範囲内のステップ数を書き込む UINT 変数へのポインター。 この数値は、 IAudioEndpointVolume インターフェイス インスタンスの有効期間中は一定です。
戻り値
メソッドが成功した場合は、S_OK を返します。 失敗した場合、次の表に示す値が含まれますが、これに限定されません。
リターン コード | 説明 |
---|---|
|
パラメーター pnStep と pnStepCount はどちらも NULL です。 |
注釈
このメソッドは、オーディオ エンドポイント デバイスを個別のボリューム レベルの範囲のインデックスまたは "ステップ" として入力または退出するオーディオ ストリームのボリューム レベルを表します。 出力値 *pnStepCount は、範囲内のステップの数です。 出力値 *pnStep は、現在のボリューム レベルのステップ インデックスです。 ステップ数が n = *pnStepCount の場合、ステップ インデックス *pnStep は 0 (最小ボリューム) から n ~ 1 (最大ボリューム) までの値を想定できます。
0 ~ n – 1 の範囲で、隣接するステップ間の連続する間隔は、必ずしも線形信号振幅またはデシベルのいずれかで均一なボリューム増分を表すわけではありません。 Windows Vista では、 GetVolumeStepInfo は、ボリューム レベル (信号振幅) に対するインデックスの関係をオーディオテーパ曲線として定義します。 今後のバージョンの Windows では、曲線の形状が変わる可能性があることに注意してください。 オーディオテーパカーブの詳細については、「 Audio-Tapered Volume Controls」を参照してください。
オーディオ アプリケーションでは 、IAudioEndpointVolume::VolumeStepUp メソッドと IAudioEndpointVolume::VolumeStepDown メソッドを呼び出して、ボリューム レベルを 1 間隔ずつ増減できます。 どちらの方法でも、まず、オーディオテーパ曲線の次のポイントに対応する理想的なボリューム レベルが計算されます。 次に、 メソッドは、理想化されたレベルに最も近いエンドポイント ボリューム設定を選択します。 エンドポイント ボリューム設定の範囲と粒度を取得するには、 IEndpointVolume::GetVolumeRange メソッドを呼び出します。 オーディオ エンドポイント デバイスがハードウェア ボリューム コントロールを実装している場合、 GetVolumeRange はハードウェア ボリュームの設定について説明します。 それ以外の場合、EndpointVolume API はソフトウェアでエンドポイント ボリュームコントロールを実装し、 GetVolumeRange はソフトウェア実装コントロールのボリューム設定を記述します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | endpointvolume.h |