IChannelAudioVolume::SetAllVolumes メソッド (audioclient.h)

SetAllVolumes メソッドは、オーディオ セッション内のすべてのチャネルの個々のボリューム レベルを設定します。

構文

HRESULT SetAllVolumes(
  [in] UINT32      dwCount,
  [in] const float *pfVolumes,
  [in] LPCGUID     EventContext
);

パラメーター

[in] dwCount

pfVolumes 配列内の要素の数。 このパラメーターは、オーディオ セッションのストリーム形式のチャネルの数と同じである必要があります。 チャネルの数を取得するには、 IChannelAudioVolume::GetChannelCount メソッドを 呼び出します。

[in] pfVolumes

オーディオ セッション内のチャネルのボリューム レベルの配列へのポインター。 pfVolumes 配列内の要素の数は、dwCount パラメーターによって指定されます。 呼び出し元は、チャネル番号と一致するインデックスを持つ配列要素に、各チャネルのボリューム レベルを書き込みます。 オーディオ セッションのストリーム形式に N チャネルがある場合、チャネルには 0 ~ N – 1 の番号が付きます。 有効なボリューム レベルの範囲は 0.0 ~ 1.0 です。

[in] EventContext

イベント コンテキスト GUID へのポインター。 このメソッドの呼び出しによってチャネル ボリューム変更イベントが生成された場合、セッション マネージャーは、セッション マネージャーと IAudioSessionEvents インターフェイスを登録しているすべてのクライアントに通知を送信します。 セッション マネージャーには、通知ごとに EventContext ポインター値が含まれます。 通知を受け取ると、クライアントは EventContext 値を調べることで、そのクライアントまたは別のクライアントがイベントのソースであるかどうかを判断できます。 このスキームは、セッション内のすべてのクライアント間で一意であるこのパラメーターの値を選択するクライアントによって異なります。 呼び出し元がこのパラメーターに NULL ポインターを指定した場合、クライアントの通知メソッドは NULL コンテキスト ポインターを受け取ります。

戻り値

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

リターン コード 説明
E_INVALIDARG
パラメーター dwCount は、オーディオ セッションのストリーム形式のチャネル数と等しくないか、 pfVolumes 配列要素の値が 0.0 から 1.0 の範囲にありません。
E_POINTER
パラメーター pfVolumesNULL です
AUDCLNT_E_DEVICE_INVALIDATED
オーディオ エンドポイント デバイスが取り外されているか、オーディオ ハードウェアまたは関連するハードウェア リソースが再構成、無効、削除、またはその他の方法で使用できなくなります。
AUDCLNT_E_SERVICE_NOT_RUNNING
Windows オーディオ サービスが実行されていません。

注釈

このメソッドが成功した場合、新しいチャネル ボリューム レベルのいずれかが以前のチャネル ボリューム レベルと値が異なるかどうかに関係なく、チャネル ボリューム変更イベントが生成されます。

要件

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

こちらもご覧ください

IAudioSessionEvents インターフェイス

IChannelAudioVolume インターフェイス

IChannelAudioVolume::GetChannelCount