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

SetChannelVolumeLevelScalar メソッドは、オーディオ エンドポイント デバイスに出入りするオーディオ ストリーム内の指定されたチャネルの、正規化されたオーディオテーパボリューム レベルを設定します。

構文

HRESULT SetChannelVolumeLevelScalar(
  [in] UINT    nChannel,
  [in] float   fLevel,
  [in] LPCGUID pguidEventContext
);

パラメーター

[in] nChannel

チャネル番号。 オーディオ ストリームに n 個のチャネルが含まれている場合、チャネルには 0 ~ n – 1 の番号が付きます。 チャネルの数を取得するには、 IAudioEndpointVolume::GetChannelCount メソッドを 呼び出します。

[in] fLevel

ボリューム レベル。 ボリューム レベルは、0.0 から 1.0 の範囲の正規化された値として表されます。

[in] pguidEventContext

IAudioEndpointVolumeCallback::OnNotify メソッドのコンテキスト値。 このパラメーターは、イベント コンテキスト GUID を指します。 SetChannelVolumeLevelScalar 呼び出しによってエンドポイントのボリューム レベルが変更された場合、そのエンドポイントに IAudioEndpointVolumeCallback インターフェイスを登録しているすべてのクライアントが通知を受け取ります。 OnNotify メソッドの実装では、クライアントはイベント コンテキスト GUID を検査して、それがボリューム変更イベントのソースであるかどうかを検出できます。 呼び出し元がこのパラメーターに NULL ポインターを指定すると、通知ルーチンはコンテキスト GUID 値GUID_NULLを受け取ります。

戻り値

メソッドが成功した場合は、S_OK を返します。 メソッドが失敗した場合、可能な戻りコードには、次の表に示す値が含まれますが、これらに限定されません。

リターン コード 説明
E_INVALIDARG
パラメーター nChannel がストリーム内のチャネルの数以上である。またはパラメーター fLevel が 0.0 から 1.0 の範囲外です。
E_OUTOFMEMORY
メモリが不足しています。

注釈

ボリューム レベルは 0.0 から 1.0 の範囲に正規化されます。ここで、0.0 は最小ボリューム レベル、1.0 は最大レベルです。 この範囲内では、正規化されたボリューム レベルと信号振幅の減衰の関係が、非線形のオーディオテーパ曲線によって記述されます。 今後のバージョンの Windows では、曲線の形状が変わる可能性があることに注意してください。 オーディオテーパカーブの詳細については、「 Audio-Tapered Volume Controls」を参照してください。

このメソッドに渡される正規化されたボリューム レベルは、アプリケーション ウィンドウおよび画面上のディスプレイでのボリューム コントロールの位置を表すために適しています。

要件

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

こちらもご覧ください

IAudioEndpointVolume インターフェイス

IAudioEndpointVolume::GetChannelCount

IAudioEndpointVolumeCallback インターフェイス

IAudioEndpointVolumeCallback::OnNotify