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 |