Compartilhar via


Método IAudioSessionEvents::OnChannelVolumeChanged (audiopolicy.h)

O método OnChannelVolumeChanged notifica o cliente de que o nível de volume de um canal de áudio no submix de sessão foi alterado.

Sintaxe

HRESULT OnChannelVolumeChanged(
  [in] DWORD    ChannelCount,
  [in] float [] NewChannelVolumeArray,
  [in] DWORD    ChangedChannel,
  [in] LPCGUID  EventContext
);

Parâmetros

[in] ChannelCount

A contagem de canais. Esse parâmetro especifica o número de canais de áudio no submix de sessão.

[in] NewChannelVolumeArray

Ponteiro para uma matriz de níveis de volume. Cada elemento é um valor do tipo float que especifica o nível de volume para um canal específico. Cada nível de volume é um valor no intervalo de 0,0 a 1,0, em que 0,0 é silêncio e 1,0 é volume completo (sem atenuação). O número de elementos na matriz é especificado pelo parâmetro ChannelCount . Se um fluxo de áudio contiver n canais, os canais serão numerados de 0 a n– 1. O elemento de matriz cujo índice corresponde ao número do canal contém o nível de volume desse canal. Suponha que a matriz permaneça válida apenas durante a chamada.

[in] ChangedChannel

O número do canal cujo nível de volume foi alterado. Use esse valor como um índice na matriz NewChannelVolumeArray . Se o submix de sessão contiver n canais, os canais serão numerados de 0 a n– 1. Se mais de um canal pode ter sido alterado (por exemplo, como resultado de uma chamada para o método IChannelAudioVolume::SetAllVolumes ), o valor de ChangedChannel é (DWORD)(–1).

[in] EventContext

O valor do contexto do evento. Esse é o mesmo valor que o chamador passou para o método IChannelAudioVolume::SetChannelVolume ou IChannelAudioVolume::SetAllVolumes na chamada que iniciou a alteração no nível de volume do canal. Para obter mais informações, consulte Comentários.

Retornar valor

Se o método for bem-sucedido, retornará S_OK. Se falhar, retornará um código de erro.

Comentários

O gerente de sessão chama esse método sempre que uma chamada para o método IChannelAudioVolume::SetChannelVolume ou IChannelAudioVolume::SetAllVolumes atualiza com êxito o nível de volume de um ou mais canais no submix de sessão. Observe que a chamada OnChannelVolumeChanged ocorre independentemente de o novo nível de volume de canal ou níveis diferirem em valor em relação ao nível ou níveis de volume do canal anterior.

O parâmetro EventContext fornece um meio para um cliente distinguir entre uma alteração de volume de canal iniciada e uma que algum outro cliente iniciou. Ao chamar o método IChannelAudioVolume::SetChannelVolume ou IChannelAudioVolume::SetAllVolumes , um cliente passa um valor de parâmetro EventContext que sua implementação do método OnChannelVolumeChanged pode reconhecer.

Para obter um exemplo de código que implementa os métodos na interface IAudioSessionEvents , consulte Eventos de Sessão de Áudio.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho audiopolicy.h

Confira também

IAudioSessionEvents Interface

IChannelAudioVolume::SetAllVolumes

IChannelAudioVolume::SetChannelVolume