Método IAudioSessionEvents::OnSessionDisconnected (audiopolicy.h)
O método OnSessionDisconnected notifica o cliente de que a sessão de áudio foi desconectada.
Sintaxe
HRESULT OnSessionDisconnected(
[in] AudioSessionDisconnectReason DisconnectReason
);
Parâmetros
[in] DisconnectReason
O motivo pelo qual a sessão de áudio foi desconectada. O chamador define esse parâmetro como um dos valores de enumeração AudioSessionDisconnectReason mostrados na tabela a seguir.
Valor | Descrição |
---|---|
DisconnectReasonDeviceRemoval | O usuário removeu o dispositivo de ponto de extremidade de áudio. |
DisconnectReasonServerShutdown | O serviço de áudio do Windows parou. |
DisconnectReasonFormatChanged | O formato de fluxo foi alterado para o dispositivo ao qual a sessão de áudio está conectada. |
DisconnectReasonSessionLogoff | O usuário desconectou a sessão do WTS (Serviços de Terminal do Windows) na qual a sessão de áudio estava sendo executada. |
DisconnectReasonSessionDisconnected | A sessão do WTS na qual a sessão de áudio estava sendo executada foi desconectada. |
DisconnectReasonExclusiveModeOverride | A sessão de áudio (modo compartilhado) foi desconectada para disponibilizar o dispositivo de ponto de extremidade de áudio para uma conexão de modo exclusivo. |
Para obter mais informações sobre sessões do WTS, consulte a documentação do SDK do Windows.
Retornar valor
Se o método for bem-sucedido, retornará S_OK. Se falhar, retornará um código de erro.
Comentários
Ao desconectar uma sessão, o gerenciador de sessão fecha os fluxos que pertencem a essa sessão e invalida todas as solicitações pendentes de serviços nesses fluxos. O cliente deve responder a uma desconexão liberando todas as suas referências à interface IAudioClient para um fluxo fechado e liberando todas as referências às interfaces de serviço obtidas anteriormente por meio de chamadas para o método IAudioClient::GetService .
Após a desconexão, muitos dos métodos nas interfaces WASAPI que estão vinculados a fluxos fechados na sessão desconectada retornam código de erro AUDCLNT_E_DEVICE_INVALIDATED (por exemplo, consulte IAudioClient::GetCurrentPadding). Para obter informações sobre como se recuperar desse erro, consulte Recuperando-se de um erro de Invalid-Device.
Se o serviço de áudio do Windows terminar inesperadamente, ele não terá a oportunidade de notificar os clientes de que ele está sendo desligado. Nesse caso, os clientes aprendem que o serviço parou quando chamam um método como IAudioClient::GetCurrentPadding que descobre que o serviço não está mais em execução e falha com o código de erro AUDCLNT_E_SERVICE_NOT_RUNNING.
Um cliente não pode gerar um evento desconectado da sessão. O sistema é sempre a origem desse tipo de evento. Portanto, ao contrário de alguns outros métodos IAudioSessionEvents , esse método não tem um parâmetro de contexto.
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 |