Méthode IAudioSessionEvents ::OnSessionDisconnected (audiopolicy.h)
La méthode OnSessionDisconnected avertit le client que la session audio a été déconnectée.
Syntaxe
HRESULT OnSessionDisconnected(
[in] AudioSessionDisconnectReason DisconnectReason
);
Paramètres
[in] DisconnectReason
Raison pour laquelle la session audio a été déconnectée. L’appelant définit ce paramètre sur l’une des valeurs d’énumération AudioSessionDisconnectReason indiquées dans le tableau suivant.
Valeur | Description |
---|---|
DisconnectReasonDeviceRemoval | L’utilisateur a supprimé le périphérique de point de terminaison audio. |
DisconnectReasonServerShutdown | Le service audio Windows s’est arrêté. |
DisconnectReasonFormatChanged | Le format de flux a changé pour l’appareil auquel la session audio est connectée. |
DisconnectReasonSessionLogoff | L’utilisateur s’est déconnecté de la session WTS (Terminal Windows Services) dans laquelle la session audio s’exécutait. |
DisconnectReasonSessionDisconnected | La session WTS dans laquelle la session audio s’exécutait a été déconnectée. |
DisconnectReasonExclusiveModeOverride | La session audio (en mode partagé) a été déconnectée pour rendre le périphérique de point de terminaison audio disponible pour une connexion en mode exclusif. |
Pour plus d’informations sur les sessions WTS, consultez la documentation SDK Windows.
Valeur retournée
Si la méthode réussit, retourne S_OK. En cas d'échec, retourne un code d'erreur.
Remarques
Lors de la déconnexion d’une session, le gestionnaire de session ferme les flux qui appartiennent à cette session et invalide toutes les demandes en attente de services sur ces flux. Le client doit répondre à une déconnexion en libérant toutes ses références à l’interface IAudioClient pour un flux fermé et en libérant toutes les références aux interfaces de service qu’il a obtenues précédemment par le biais d’appels à la méthode IAudioClient ::GetService .
Après la déconnexion, la plupart des méthodes des interfaces WASAPI qui sont liées à des flux fermés dans la session déconnectée retournent le code d’erreur AUDCLNT_E_DEVICE_INVALIDATED (par exemple, consultez IAudioClient ::GetCurrentPadding). Pour plus d’informations sur la récupération de cette erreur, consultez Récupération d’une erreur de Invalid-Device.
Si le service audio Windows s’arrête de façon inattendue, il n’a pas la possibilité d’informer les clients qu’il s’arrête. Dans ce cas, les clients apprennent que le service s’est arrêté lorsqu’ils appellent une méthode telle que IAudioClient ::GetCurrentPadding qui découvre que le service n’est plus en cours d’exécution et échoue avec le code d’erreur AUDCLNT_E_SERVICE_NOT_RUNNING.
Un client ne peut pas générer un événement déconnecté de session. Le système est toujours la source de ce type d’événement. Par conséquent, contrairement à d’autres méthodes IAudioSessionEvents , cette méthode n’a pas de paramètre de contexte.
Pour obtenir un exemple de code qui implémente les méthodes dans l’interface IAudioSessionEvents , consultez Événements de session audio.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | audiopolicy.h |