Compartilhar via


Método IAudioSessionControl::GetState (audiopolicy.h)

O método GetState recupera o estado atual da sessão de áudio.

Sintaxe

HRESULT GetState(
  [out] AudioSessionState *pRetVal
);

Parâmetros

[out] pRetVal

Ponteiro para uma variável na qual o método grava o estado de sessão atual. O estado deve ser um dos seguintes valores de enumeração AudioSessionState :

AudioSessionStateActive

AudioSessionStateInactive

AudioSessionStateExpired

Esses valores indicam que o estado da sessão está ativo, inativo ou expirado, respectivamente. Para obter mais informações, consulte Comentários.

Retornar valor

Se o método for bem-sucedido, retornará S_OK. Se falhar, os códigos de retorno possíveis incluem, mas não se limitam a, os valores mostrados na tabela a seguir.

Código de retorno Descrição
E_POINTER
O parâmetro pRetVal é NULL.
AUDCLNT_E_DEVICE_INVALIDATED
O dispositivo de ponto de extremidade de áudio foi desconectado ou o hardware de áudio ou os recursos de hardware associados foram reconfigurados, desabilitados, removidos ou indisponíveis para uso.
AUDCLNT_E_SERVICE_NOT_RUNNING
O serviço de áudio do Windows não está em execução.

Comentários

Esse método indica se o estado da sessão está ativo, inativo ou expirado. O estado estará ativo se a sessão tiver um ou mais fluxos em execução. O estado muda de ativo para inativo quando o último fluxo em execução na sessão é interrompido. O estado da sessão muda para expirado quando o cliente destrói o último fluxo na sessão liberando todas as referências ao objeto de fluxo.

O programa Sndvol exibe controles de volume e mudo para sessões que estão nos estados ativo e inativo. Quando uma sessão expira, o Sndvol para de exibir os controles dessa sessão. Se uma sessão tiver expirado anteriormente, mas o estado da sessão for alterado para ativo (porque um fluxo na sessão começa a ser executado) ou inativo (porque um cliente atribui um novo fluxo à sessão), o Sndvol retoma a exibição dos controles da sessão.

O cliente cria um fluxo chamando o método IAudioClient::Initialize . No momento em que ele cria um fluxo, o cliente atribui o fluxo a uma sessão. Uma sessão começa quando um cliente atribui o primeiro fluxo à sessão. Inicialmente, a sessão está no estado inativo. O estado da sessão muda para ativo quando o primeiro fluxo na sessão começa a ser executado. A sessão termina quando um cliente libera a referência final para o último objeto de fluxo restante na sessão.

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

IAudioClient::Initialize

IAudioSessionControl Interface

IMMDevice::Activate