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 |