Share via


Metodo IAudioSessionEvents::OnSessionDisconnected (audiopolicy.h)

Il metodo OnSessionDisconnected notifica al client che la sessione audio è stata disconnessa.

Sintassi

HRESULT OnSessionDisconnected(
  [in] AudioSessionDisconnectReason DisconnectReason
);

Parametri

[in] DisconnectReason

Motivo per cui la sessione audio è stata disconnessa. Il chiamante imposta questo parametro su uno dei valori di enumerazione AudioSessionDisconnectReason visualizzati nella tabella seguente.

Valore Descrizione
DisconnessioneReasonDeviceRemoval L'utente ha rimosso il dispositivo dell'endpoint audio.
DisconnessioneReasonServerShutdown Il servizio audio Di Windows è stato arrestato.
DisconnessioneReasonFormatChanged Il formato di flusso modificato per il dispositivo a cui è connessa la sessione audio.
DisconnessioneReasonSessionLogoff L'utente ha eseguito l'accesso alla sessione WTS (Terminale Windows Services) in cui è in esecuzione la sessione audio.
DisconnessioneReasonSessionDisconnected La sessione WTS in cui è in esecuzione la sessione audio è stata disconnessa.
DisconnessioneReasonExclusiveModeOverride La sessione audio (modalità condivisa) è stata disconnessa per rendere il dispositivo dell'endpoint audio disponibile per una connessione in modalità esclusiva.
 

Per altre informazioni sulle sessioni WTS, vedere la documentazione di Windows SDK.

Valore restituito

Se il metodo ha esito positivo, viene restituito S_OK. Se ha esito negativo, viene restituito un codice di errore.

Commenti

Quando si disconnette una sessione, la gestione sessione chiude i flussi appartenenti a tale sessione e invalida tutte le richieste in sospeso per i servizi in tali flussi. Il client deve rispondere a una disconnessione rilasciando tutti i relativi riferimenti all'interfaccia IAudioClient per un flusso chiuso e rilasciando tutti i riferimenti alle interfacce del servizio ottenute in precedenza tramite chiamate al metodo IAudioClient::GetService .

Dopo la disconnessione, molti dei metodi nelle interfacce WASAPI associate a flussi chiusi nella sessione disconnessa restituiscono codice di errore AUDCLNT_E_DEVICE_INVALIDATED (ad esempio, vedere IAudioClient::GetCurrentPadding). Per informazioni sul ripristino da questo errore, vedere Ripristino da un errore di Invalid-Device.

Se il servizio audio Di Windows termina in modo imprevisto, non ha la possibilità di notificare ai client che si arresta. In tal caso, i client apprenderà che il servizio è stato arrestato quando chiamano un metodo come IAudioClient::GetCurrentPadding che rileva che il servizio non è più in esecuzione e non riesce con il codice di errore AUDCLNT_E_SERVICE_NOT_RUNNING.

Un client non può generare un evento disconnesso dalla sessione. Il sistema è sempre l'origine di questo tipo di evento. Pertanto, a differenza di altri metodi IAudioSessionEvents , questo metodo non ha un parametro di contesto.

Per un esempio di codice che implementa i metodi nell'interfaccia IAudioSessionEvents , vedere Eventi sessione audio.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione audiopolicy.h

Vedi anche

Interfaccia IAudioClient

IAudioClient::GetService

Interfaccia IAudioSessionEvents