Metodo IAudioSessionManager2::RegisterSessionNotification (audiopolicy.h)
Il metodo RegisterSessionNotification registra l'applicazione per ricevere una notifica quando viene creata una sessione.
Sintassi
HRESULT RegisterSessionNotification(
IAudioSessionNotification *SessionNotification
);
Parametri
SessionNotification
Puntatore all'implementazione dell'applicazione dell'interfaccia IAudioSessionNotification . Se la chiamata al metodo ha esito positivo, chiama il metodo AddRef nell'interfaccia IAudioSessionNotification dell'applicazione.
Valore restituito
Se il metodo ha esito positivo, viene restituito S_OK. Se ha esito negativo, i codici restituiti possibili includono, ma non sono limitati a, i valori visualizzati nella tabella seguente.
Valore restituito | Descrizione |
---|---|
|
SessionNotification è NULL. |
|
Impossibile creare un oggetto interno a causa di memoria insufficiente. |
Commenti
L'applicazione può registrarsi per ricevere una notifica quando viene creata una sessione tramite i metodi dell'interfaccia IAudioSessionNotification . L'applicazione implementa l'interfaccia IAudioSessionNotification . I metodi definiti in questa interfaccia ricevono callback dal sistema quando viene creata una sessione. Ad esempio, codice che illustra come implementare questa interfaccia, vedere
Interfaccia IAudioSessionNotification.
Per iniziare a ricevere notifiche, l'applicazione chiama il metodo IAudioSessionManager2::RegisterSessionNotification per registrare l'interfaccia IAudioSessionNotification . Quando l'applicazione non richiede più notifiche, chiama il metodo IAudioSessionManager2::UnregisterSessionNotification per eliminare la registrazione.
Importante
Per iniziare a ricevere notifiche, è necessario chiamare IAudioSessionEnumerator::GetCount . L'API di enumerazione sessione elimina le nuove notifiche di sessione fino a quando l'applicazione non ha prima recuperato l'elenco delle sessioni esistenti. Si tratta di impedire l'avvio di una condizione di gara che può verificarsi quando arriva una notifica di sessione mentre l'applicazione usa le API di sessione. La chiamata a GetCount attiva l'API di enumerazione per iniziare a inviare notifiche di sessione.
CoInitializeEx(NULL, COINIT_MULTITHREADED)
in un thread non interfaccia utente. Se MTA non viene inizializzato, l'applicazione non riceve notifiche di sessione dalla gestione sessione.
I thread che eseguono l'interfaccia utente di un'applicazione devono essere inizializzati modello di threading di appartamento.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 7 [solo app desktop] |
Server minimo supportato | Windows Server 2008 R2 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | audiopolicy.h |