IAudioSessionManager2::RegisterSessionNotification-Methode (audiopolicy.h)
Die RegisterSessionNotification-Methode registriert die Anwendung, um eine Benachrichtigung zu erhalten, wenn eine Sitzung erstellt wird.
Syntax
HRESULT RegisterSessionNotification(
IAudioSessionNotification *SessionNotification
);
Parameter
SessionNotification
Ein Zeiger auf die Implementierung der IAudioSessionNotification-Schnittstelle der Anwendung. Wenn der Methodenaufruf erfolgreich ist, wird die AddRef-Methode auf der IAudioSessionNotification-Schnittstelle der Anwendung aufgerufen.
Rückgabewert
Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Wenn ein Fehler auftritt, können mögliche Rückgabecodes die in der folgenden Tabelle gezeigten Werte umfassen, sind jedoch nicht darauf beschränkt.
Rückgabewert | Beschreibung |
---|---|
|
SessionNotification ist NULL. |
|
Das interne Objekt konnte aufgrund unzureichendem Arbeitsspeicher nicht erstellt werden. |
Hinweise
Die Anwendung kann sich registrieren, um eine Benachrichtigung zu erhalten, wenn eine Sitzung erstellt wird, über die Methoden der IAudioSessionNotification-Schnittstelle . Die Anwendung implementiert die IAudioSessionNotification-Schnittstelle . Die in dieser Schnittstelle definierten Methoden erhalten Rückrufe vom System, wenn eine Sitzung erstellt wird. Beispielcode, der zeigt, wie diese Schnittstelle implementiert wird, finden Sie unter
IAudioSessionNotification-Schnittstelle.
Um Benachrichtigungen zu erhalten, ruft die Anwendung die IAudioSessionManager2::RegisterSessionNotification-Methode auf, um die IAudioSessionNotification-Schnittstelle zu registrieren. Wenn die Anwendung keine Benachrichtigungen mehr benötigt, ruft sie die IAudioSessionManager2::UnregisterSessionNotification-Methode auf, um die Registrierung zu löschen.
Wichtig
Sie müssen IAudioSessionEnumerator::GetCount aufrufen, um Benachrichtigungen zu empfangen. Die Sitzungsaufzählungs-API verwirft neue Sitzungsbenachrichtigungen, bis die Anwendung zuerst die Liste der vorhandenen Sitzungen abgerufen hat. Dies ist, um eine Racebedingung zu verhindern, die auftreten kann, wenn eine Sitzungsbenachrichtigung eingeht, während die Anwendung, die die Sitzungs-APIs verwendet, gestartet wird. Das Aufrufen von GetCount löst die Enumerations-API aus, um mit dem Senden von Sitzungsbenachrichtigungen zu beginnen.
CoInitializeEx(NULL, COINIT_MULTITHREADED)
. Wenn MTA nicht initialisiert wird, empfängt die Anwendung keine Sitzungsbenachrichtigungen vom Sitzungs-Manager.
Threads, die die Benutzeroberfläche einer Anwendung ausführen, sollten ein initialisiertes Apartmentthreadingmodell sein.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 7 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | audiopolicy.h |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für