IAudioSessionEvents::OnSessionDisconnected-Methode (audiopolicy.h)
Die OnSessionDisconnected-Methode benachrichtigt den Client, dass die Audiositzung getrennt wurde.
Syntax
HRESULT OnSessionDisconnected(
[in] AudioSessionDisconnectReason DisconnectReason
);
Parameter
[in] DisconnectReason
Der Grund, warum die Audiositzung getrennt wurde. Der Aufrufer legt diesen Parameter auf einen der in der folgenden Tabelle gezeigten AudioSessionDisconnectReason-Enumerationswerte fest.
Wert | BESCHREIBUNG |
---|---|
DisconnectReasonDeviceRemoval | Der Benutzer hat das Audioendpunktgerät entfernt. |
DisconnectReasonServerShutdown | Der Windows-Audiodienst wurde beendet. |
DisconnectReasonFormatChanged | Das Streamformat wurde für das Gerät geändert, mit dem die Audiositzung verbunden ist. |
DisconnectReasonSessionLogoff | Der Benutzer hat die Windows-Terminal Services(WTS)-Sitzung abgemeldet, in der die Audiositzung ausgeführt wurde. |
DisconnectReasonSessionDisconnected | Die WTS-Sitzung, in der die Audiositzung ausgeführt wurde, wurde getrennt. |
DisconnectReasonExclusiveModeOverride | Die Audiositzung im freigegebenen Modus wurde getrennt, um das Audioendpunktgerät für eine Verbindung im exklusiven Modus verfügbar zu machen. |
Weitere Informationen zu WTS-Sitzungen finden Sie in der Dokumentation zu Windows SDK.
Rückgabewert
Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Bei einem Fehler wird ein Fehlercode zurückgegeben.
Hinweise
Beim Trennen einer Sitzung schließt der Sitzungs-Manager die Streams, die zu dieser Sitzung gehören, und ungültig alle ausstehenden Anforderungen für Dienste in diesen Streams. Der Client sollte auf eine Trennung reagieren, indem er alle Verweise auf die IAudioClient-Schnittstelle für einen geschlossenen Datenstrom freigibt und alle Verweise auf die Dienstschnittstellen freigibt, die er zuvor über Aufrufe der IAudioClient::GetService-Methode abgerufen hat.
Nach der Trennung geben viele der Methoden in den WASAPI-Schnittstellen, die an geschlossene Datenströme in der getrennten Sitzung gebunden sind, fehlercode AUDCLNT_E_DEVICE_INVALIDATED zurück (siehe z. B. IAudioClient::GetCurrentPadding). Informationen zum Wiederherstellen nach diesem Fehler finden Sie unter Wiederherstellen nach einem Invalid-Device Fehler.
Wenn der Windows-Audiodienst unerwartet beendet wird, hat er keine Möglichkeit, Clients zu benachrichtigen, dass er heruntergefahren wird. In diesem Fall erfahren Clients, dass der Dienst beendet wurde, wenn sie eine Methode wie IAudioClient::GetCurrentPadding aufrufen, die erkennt, dass der Dienst nicht mehr ausgeführt wird und fehlercode AUDCLNT_E_SERVICE_NOT_RUNNING.
Ein Client kann kein Ereignis mit getrennter Sitzung generieren. Das System ist immer die Quelle dieses Ereignistyps. Daher verfügt diese Methode im Gegensatz zu einigen anderen IAudioSessionEvents-Methoden nicht über einen Kontextparameter.
Ein Codebeispiel, das die Methoden in der IAudioSessionEvents-Schnittstelle implementiert, finden Sie unter Audiositzungsereignisse.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | audiopolicy.h |