IAudioSessionEvents::OnChannelVolumeChanged メソッド (audiopolicy.h)
OnChannelVolumeChanged メソッドは、セッション サブミックス内のオーディオ チャネルのボリューム レベルが変更されたことをクライアントに通知します。
構文
HRESULT OnChannelVolumeChanged(
[in] DWORD ChannelCount,
[in] float [] NewChannelVolumeArray,
[in] DWORD ChangedChannel,
[in] LPCGUID EventContext
);
パラメーター
[in] ChannelCount
チャネル数。 このパラメーターは、セッション サブミックス内のオーディオ チャネルの数を指定します。
[in] NewChannelVolumeArray
ボリューム レベルの配列へのポインター。 各要素は、特定のチャネルのボリューム レベルを指定する float 型の値です。 各ボリューム レベルは 0.0 から 1.0 の範囲の値です。0.0 は無音で、1.0 は完全ボリュームです (減衰なし)。 配列内の要素の数は、 ChannelCount パラメーターによって指定されます。 オーディオ ストリームに n 個のチャネルが含まれている場合、チャネルには 0 ~ n – 1 の番号が付きます。 インデックスがチャネル番号と一致する配列要素には、そのチャネルのボリューム レベルが含まれます。 配列は、呼び出しの期間中のみ有効なままであると仮定します。
[in] ChangedChannel
ボリューム レベルが変更されたチャネルの番号。 この値は 、NewChannelVolumeArray 配列のインデックスとして使用します。 セッション サブミックスに n 個のチャネルが含まれている場合、チャネルには 0 から n – 1 の番号が付きます。 複数のチャネルが変更された可能性がある場合 (たとえば、 IChannelAudioVolume::SetAllVolumes メソッドの呼び出しの結果)、 ChangedChannel の値は (DWORD)(–1) です。
[in] EventContext
イベント コンテキスト値。 これは、呼び出し元がチャネルのボリューム レベルの変更を開始した呼び出しの IChannelAudioVolume::SetChannelVolume または IChannelAudioVolume::SetAllVolumes メソッドに渡した値と同じです。 詳細については、「解説」を参照してください。
戻り値
メソッドが成功した場合は、S_OK を返します。 失敗した場合はエラー コードを返します。
解説
セッション マネージャーは、 IChannelAudioVolume::SetChannelVolume メソッドまたは IChannelAudioVolume::SetAllVolumes メソッドの呼び出しによって、セッション サブミックス内の 1 つ以上のチャネルのボリューム レベルが正常に更新されるたびに、このメソッドを呼び出します。 OnChannelVolumeChanged 呼び出しは、新しいチャネル ボリューム レベルまたはレベルの値が以前のチャネル ボリューム レベルまたはレベルと異なるかどうかに関係なく発生します。
EventContext パラメーターは、クライアントが開始したチャネルボリュームの変更と、他のクライアントが開始したチャネルボリュームの変更を区別するための手段を提供します。 IChannelAudioVolume::SetChannelVolume メソッドまたは IChannelAudioVolume::SetAllVolumes メソッドを呼び出すと、クライアントは、OnChannelVolumeChanged メソッドの実装で認識できる EventContext パラメーター値を渡します。
IAudioSessionEvents インターフェイスで メソッドを実装するコード例については、「オーディオ セッション イベント」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | audiopolicy.h |