次の方法で共有


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

SetChannelVolumeLevel メソッドは、オーディオ エンドポイント デバイスに出入りするオーディオ ストリームの指定されたチャネルのボリューム レベルをデシベル単位で設定します。

構文

HRESULT SetChannelVolumeLevel(
  [in] UINT    nChannel,
  [in] float   fLevelDB,
  [in] LPCGUID pguidEventContext
);

パラメーター

[in] nChannel

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

[in] fLevelDB

新しいボリューム レベル (デシベル)。 このメソッドで設定できるボリューム レベルの範囲と粒度を取得するには、 IAudioEndpointVolume::GetVolumeRange メソッドを呼び出します。

[in] pguidEventContext

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

戻り値

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

リターン コード 説明
E_INVALIDARG
パラメーター nChannel がストリーム内のチャネルの数以上である。またはパラメーター fLevelDB は、デバイスでサポートされているボリューム範囲の外にあります。
E_OUTOFMEMORY
メモリが不足しています。

注釈

ボリューム レベル fLevelDBIAudioEndpointVolume::GetVolumeRange メソッドによって報告されたボリューム範囲の外にある場合、 SetChannelVolumeLevel 呼び出しは失敗し、エラー コード E_INVALIDARGを返します。

要件

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

こちらもご覧ください

IAudioEndpointVolume インターフェイス

IAudioEndpointVolume::GetChannelCount

IAudioEndpointVolume::GetVolumeRange

IAudioEndpointVolumeCallback インターフェイス

IAudioEndpointVolumeCallback::OnNotify