Método IAudioSessionEvents::OnSessionDisconnected (audiopolicy.h)
El método OnSessionDisconnected notifica al cliente que se ha desconectado la sesión de audio.
Sintaxis
HRESULT OnSessionDisconnected(
[in] AudioSessionDisconnectReason DisconnectReason
);
Parámetros
[in] DisconnectReason
Motivo por el que se desconectó la sesión de audio. El llamador establece este parámetro en uno de los valores de enumeración AudioSessionDisconnectReason que se muestran en la tabla siguiente.
Valor | Descripción |
---|---|
DisconnectReasonDeviceRemoval | El usuario quitó el dispositivo de punto de conexión de audio. |
DisconnectReasonServerShutdown | El servicio de audio de Windows se ha detenido. |
DisconnectReasonFormatChanged | El formato de secuencia cambiado para el dispositivo al que está conectada la sesión de audio. |
DisconnectReasonSessionLogoff | El usuario ha cerrado la sesión de Terminal Windows Services (WTS) en la que se estaba ejecutando la sesión de audio. |
DisconnectReasonSessionDisconnected | Se desconectó la sesión WTS en la que se estaba ejecutando la sesión de audio. |
DisconnectReasonExclusiveModeOverride | La sesión de audio (modo compartido) se desconectó para que el dispositivo de punto de conexión de audio esté disponible para una conexión de modo exclusivo. |
Para obtener más información sobre las sesiones WTS, consulte la documentación de Windows SDK.
Valor devuelto
Si el método se realiza correctamente, devuelve S_OK. Si se produce un error, devuelve un código de error.
Comentarios
Al desconectar una sesión, el administrador de sesiones cierra las secuencias que pertenecen a esa sesión e invalida todas las solicitudes pendientes de los servicios de esas secuencias. El cliente debe responder a una desconexión liberando todas sus referencias a la interfaz IAudioClient para una secuencia cerrada y liberando todas las referencias a las interfaces de servicio que obtuvo anteriormente a través de llamadas al método IAudioClient::GetService .
Después de la desconexión, muchos de los métodos de las interfaces WASAPI que están vinculadas a secuencias cerradas en el código de error de devolución de sesión desconectado AUDCLNT_E_DEVICE_INVALIDATED (por ejemplo, vea IAudioClient::GetCurrentPadding). Para obtener información sobre cómo recuperarse de este error, consulte Recuperación de un error de Invalid-Device.
Si el servicio de audio de Windows finaliza inesperadamente, no tiene la oportunidad de notificar a los clientes que se está cerrando. En ese caso, los clientes aprenden que el servicio se ha detenido cuando llaman a un método como IAudioClient::GetCurrentPadding que detecta que el servicio ya no se está ejecutando y produce un error en el código de error AUDCLNT_E_SERVICE_NOT_RUNNING.
Un cliente no puede generar un evento desconectado de sesión. El sistema siempre es el origen de este tipo de evento. Por lo tanto, a diferencia de otros métodos IAudioSessionEvents , este método no tiene un parámetro de contexto.
Para obtener un ejemplo de código que implementa los métodos en la interfaz IAudioSessionEvents , vea Eventos de sesión de audio.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | audiopolicy.h |