Compartir a través de


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

Consulte también

IAudioClient (interfaz)

IAudioClient::GetService

IAudioSessionEvents (Interfaz)