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 を返します。 エラーが発生した場合、次の表に示す値が、可能なリターン コードに含まれますが、これらに限定されません。
リターン コード | 説明 |
---|---|
|
パラメーター pfLevelMinDB、 pfLevelMaxDB、または pfVolumeIncrementDB が NULL です。 |
解説
vmin = *pfLevelMinDB から vmax = *pfLevelMaxDB までのボリューム範囲は、サイズ vinc = *pfVolumeIncrementDB の n つの均一間隔に分割されます。
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::GetChannelVolumeLevel
IAudioEndpointVolume::GetMasterVolumeLevel
IAudioEndpointVolume::SetChannelVolumeLevel
IAudioEndpointVolume::SetMasterVolumeLevel
IEndpointVolume::GetVolumeStepInfo