Controles de volume
Os clientes que gerenciam fluxos de modo compartilhado normalmente usam as interfaces ISimpleAudioVolume e IAudioSessionEvents no WASAPI para controlar e monitorar os níveis de volume de fluxo. Através dos métodos na interface ISimpleAudioVolume , o cliente pode obter e definir os níveis de volume das sessões de áudio às quais os fluxos de modo compartilhado pertencem. Se o Sndvol ou outro aplicativo alterar o nível de volume da sessão, o cliente poderá receber notificação da alteração por meio da interface IAudioSessionEvents .
Os clientes que gerenciam fluxos de modo exclusivo normalmente usam as interfaces IAudioEndpointVolume e IAudioEndpointVolumeCallback na API EndpointVolume para controlar e monitorar os níveis de volume de fluxo. Através dos métodos na interface IAudioEndpointVolume , o cliente pode obter e definir o nível de volume de um dispositivo de ponto de extremidade de áudio. Se o Sndvol ou outro aplicativo alterar o nível de volume do dispositivo de ponto de extremidade, o cliente poderá receber notificação da alteração por meio da interface IAudioEndpointVolumeCallback .
Como explicado em Audio Sessions, o Sndvol é o programa de controle de volume do sistema. Ele exibe controles de volume para os dispositivos de ponto de extremidade de renderização de áudio no sistema. (Atualmente, ele não exibe os controles de volume para dispositivos de ponto de extremidade de captura de áudio.) Para exibir os controles de volume de um dispositivo específico, clique em Dispositivo na barra de menus e selecione um nome de dispositivo na lista de dispositivos disponíveis.
A janela Sndvol separa os controles de volume de um dispositivo em dois grupos. A caixa de grupo no lado esquerdo da janela é rotulada como Dispositivo. A caixa Dispositivo contém um único controle de volume que é controlado pela interface IAudioEndpointVolume. As alterações feitas pelo usuário nesse controle de volume podem ser monitoradas por meio da interface IAudioEndpointVolumeCallback.
A caixa de grupo no lado direito da janela do Sndvol é rotulada como Aplicativos. A caixa Aplicativos contém os controles de volume para os aplicativos que compartilham o dispositivo no momento. Para aplicativos que usam o dispositivo no modo compartilhado, os controles de volume representam os níveis de volume controlados pela interface ISimpleAudioVolume. As alterações feitas pelo usuário nesses controles de volume podem ser monitoradas por meio da interface IAudioSessionEvents.
Embora um aplicativo de modo compartilhado possa usar sua interface IAudioSessionEvents para monitorar as alterações feitas pelo usuário no controle de volume do aplicativo na caixa Aplicativos na janela Sndvol, o aplicativo não pode monitorar alterações nos controles de volume de outros aplicativos não relacionados. Da mesma forma, um aplicativo pode alterar os níveis de volume de suas sessões de áudio por meio da interface ISimpleAudioVolume , mas não pode alterar os níveis de volume de sessões que pertencem a outros aplicativos não relacionados.
No entanto, dois ou mais aplicativos relacionados (ou instâncias do mesmo aplicativo) podem compartilhar o mesmo controle de volume na caixa Aplicativos na janela do Sndvol atribuindo seus fluxos de áudio à mesma sessão de processo cruzado ou associando suas respectivas sessões ao mesmo parâmetro de agrupamento. Para obter mais informações, consulte Sessões de áudio e parâmetros de agrupamento.
O WASAPI fornece duas interfaces adicionais, IChannelAudioVolume e IAudioStreamVolume, para controlar os níveis de volume de fluxos de modo compartilhado. Essas interfaces são usadas principalmente por clientes especializados que exigem controle sobre os níveis de volume de canais individuais em uma sessão ou fluxos individuais em uma sessão.
A API DeviceTopology permite que os clientes acessem os controles de volume nas topologias de adaptadores de áudio. No entanto, os clientes que gerenciam fluxos de modo exclusivo normalmente usam a API EndpointVolume em vez da API DeviceTopology para controlar os níveis de volume de fluxo. A API EndpointVolume simplifica o controle do volume de um dispositivo de ponto de extremidade de duas maneiras. Primeiro, se um dispositivo de ponto de extremidade implementa um controle de volume de hardware, a API DeviceTopology exige que o cliente percorra a topologia do dispositivo em busca do controle de hardware. Por outro lado, a API EndpointVolume localiza automaticamente o controle de volume de hardware para o cliente. Em segundo lugar, se o dispositivo de ponto de extremidade não implementar um controle de volume de hardware, um cliente DeviceTopology deverá implementar um controle de volume no software. Por outro lado, a API EndpointVolume substitui automaticamente um controle de volume de software pelo controle de hardware ausente.
As seções a seguir descrevem os controles de volume para sessões de áudio e para dispositivos de ponto de extremidade de áudio:
- Controles de volume de sessão
- Controles de volume de ponto de extremidade
- EndpointVolume API
- Controles de volume cônicos de áudio
- Medidores de Pico
Tópicos relacionados