IAudioEndpointVolume::GetVolumeRange メソッド (endpointvolume.h)

GetVolumeRange メソッドは、オーディオ エンドポイント デバイスに出入りするオーディオ ストリームのボリューム範囲をデシベル単位で取得します。

構文

HRESULT GetVolumeRange(
  [out] float *pflVolumeMindB,
  [out] float *pflVolumeMaxdB,
  [out] float *pflVolumeIncrementdB
);

パラメーター

[out] pflVolumeMindB

最小ボリューム レベルへのポインター。 このパラメーターは、メソッドが最小ボリューム レベルをデシベルで書き込む float 変数を指します。 この値は、 IAudioEndpointVolume インターフェイス インスタンスの有効期間は一定のままです。

[out] pflVolumeMaxdB

最大ボリューム レベルへのポインター。 このパラメーターは、メソッドが最大ボリューム レベルをデシベルで書き込む float 変数を指します。 この値は、 IAudioEndpointVolume インターフェイス インスタンスの有効期間は一定のままです。

[out] pflVolumeIncrementdB

ボリュームの増分へのポインター。 このパラメーターは、メソッドがボリュームの増分をデシベル単位で書き込む float 変数を指します。 この増分は、 IAudioEndpointVolume インターフェイス インスタンスの有効期間にわたって一定のままです。

戻り値

メソッドが成功した場合は、S_OK を返します。 エラーが発生した場合、次の表に示す値が、可能なリターン コードに含まれますが、これらに限定されません。

リターン コード 説明
E_POINTER
パラメーター pfLevelMinDBpfLevelMaxDB、または pfVolumeIncrementDBNULL です

解説

vmin = *pfLevelMinDB から vmax = *pfLevelMaxDB までのボリューム範囲は、サイズ vinc = *pfVolumeIncrementDBn つの均一間隔に分割されます。

n = (vmax – vmin) / vinc.

値 vmin、vmax、vinc はデシベル単位で測定されます。 クライアントは、ボリューム レベルを vmin から vmax までの範囲の n + 1 個の不連続値のいずれかに設定できます。

IAudioEndpointVolume::SetChannelVolumeLevel メソッドと IAudioEndpointVolume::SetMasterVolumeLevel メソッドは、vmin から vmax までの範囲のボリューム レベルのみを受け入れます。 呼び出し元がこの範囲外のボリューム レベルを指定した場合、メソッドは失敗し、E_INVALIDARGを返します。 呼び出し元がボリューム範囲内の 2 つのステップの間にあるボリューム・レベルを指定した場合、 メソッドはエンドポイント・ボリューム・レベルを、要求されたボリューム・レベルに最も近いステップに設定し、S_OKを返します。 ただし、IAudioEndpointVolume::GetChannelVolumeLevel または IAudioEndpointVolume::GetMasterVolumeLevel への後続の呼び出しでは、ステップ値ではなく、SetChannelVolumeLevel または SetMasterVolumeLevel の前回の呼び出しによって要求されたボリューム レベルが取得されます。

ボリューム コントロールがハードウェアに実装されている場合、 GetVolumeRange はハードウェア ボリューム設定の範囲と粒度を記述します。 これに対し、IEndpointVolume::GetVolumeStepInfo メソッドによって報告される手順は、IEndpointVolume::VolumeStepDown メソッドと IEndpointVolume::VolumeStepUp メソッドによってソフトウェアで計算されるオーディオテーパ曲線上のポイントに対応しています。 どちらの方法でも、最初に曲線上の次の点に対応する理想的なボリューム レベルを計算します。 次に、理想的なレベルに最も近いハードウェア ボリューム設定を選択します。 オーディオテーパカーブの詳細については、「 Audio-Tapered Volume Controls」を参照してください。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー endpointvolume.h

関連項目

IAudioEndpointVolume インターフェイス

IAudioEndpointVolume::GetChannelVolumeLevel

IAudioEndpointVolume::GetMasterVolumeLevel

IAudioEndpointVolume::SetChannelVolumeLevel

IAudioEndpointVolume::SetMasterVolumeLevel

IEndpointVolume::GetVolumeStepInfo

IEndpointVolume::VolumeStepDown

IEndpointVolume::VolumeStepUp