Freigeben über


IAudioSessionManager2-Schnittstelle (audiopolicy.h)

Die IAudioSessionManager2-Schnittstelle ermöglicht es einer Anwendung, Submixe für das Audiogerät zu verwalten.

Um einen Verweis auf eine IAudioSessionManager2-Schnittstelle zu erhalten, muss die Anwendung sie auf dem Audiogerät aktivieren, indem Sie die folgenden Schritte ausführen:

  1. Verwenden Sie eine der auf der Seite IMMDevice-Schnittstelle beschriebenen Techniken, um einen Verweis auf die IMMDevice-Schnittstelle für ein Audioendpunktgerät zu erhalten.
  2. Rufen Sie die IMMDevice::Activate-Methode auf, wobei der Parameter iid auf IID_IAudioSessionManager2 festgelegt ist.

Wenn die Anwendung die IAudioSessionManager2-Schnittstelle instance freigeben möchte, muss die Anwendung die Release-Methode der Schnittstelle aufrufen.

Der Anwendungsthread, der diese Schnittstelle verwendet, muss für COM initialisiert werden. Weitere Informationen zur COM-Initialisierung finden Sie in der Beschreibung der CoInitializeEx-Funktion in der Windows SDK-Dokumentation.

Vererbung

Die IAudioSessionManager2-Schnittstelle erbt von IAudioSessionManager. IAudioSessionManager2 verfügt auch über folgende Membertypen:

Methoden

Die IAudioSessionManager2-Schnittstelle verfügt über diese Methoden.

 
IAudioSessionManager2::GetSessionEnumerator

Die GetSessionEnumerator-Methode ruft einen Zeiger auf das Enumeratorobjekt der Audiositzung ab.
IAudioSessionManager2::RegisterDuckNotification

Die RegisterDuckNotification-Methode registriert die Anwendung beim Sitzungs-Manager, um Duckingbenachrichtigungen zu empfangen.
IAudioSessionManager2::RegisterSessionNotification

Die RegisterSessionNotification-Methode registriert die Anwendung, um eine Benachrichtigung zu erhalten, wenn eine Sitzung erstellt wird.
IAudioSessionManager2::UnregisterDuckNotification

Die UnregisterDuckNotification-Methode löscht eine vorherige Registrierung durch die Anwendung, um Benachrichtigungen zu erhalten.
IAudioSessionManager2::UnregisterSessionNotification

Die UnregisterSessionNotification-Methode löscht die Registrierung, um eine Benachrichtigung zu erhalten, wenn eine Sitzung erstellt wird.

Hinweise

Eine Anwendung kann diese Schnittstelle verwenden, um die folgenden Aufgaben auszuführen:

  • Registrieren Sie sich, um Ducking-Benachrichtigungen zu erhalten.
  • Registrieren Sie sich, um eine Benachrichtigung zu erhalten, wenn eine Sitzung erstellt wird.
  • Auflisten von Sitzungen auf dem Audiogerät, das zum Abrufen des Schnittstellenzeigers verwendet wurde.

Diese Schnittstelle unterstützt benutzerdefinierte Implementierungen für stream Dämpfung oder Ducking, ein neues Feature in Windows 7. Eine Anwendung, die einen Mediendatenstrom wiedergibt, kann dazu führen, dass er sich anders verhält, wenn ein neuer Kommunikationsdatenstrom auf dem Standardkommunikationsgerät geöffnet wird. Beispielsweise kann der ursprüngliche Mediendatenstrom angehalten werden, während der neue Kommunikationsdatenstrom geöffnet ist. Weitere Informationen zu diesem Feature finden Sie unter Verwenden eines Kommunikationsgeräts.

Eine Anwendung, die die Medienstreams verwaltet und eine benutzerdefinierte Duckingimplementierung bereitstellen möchte, muss sich registrieren, um Benachrichtigungen zu erhalten, wenn Sitzungsereignisse auftreten. Zur Streamdämpfung wird vom System ein Sitzungsereignis ausgelöst, wenn ein Kommunikationsdatenstrom auf dem Standardkommunikationsgerät geöffnet oder geschlossen wird. Weitere Informationen finden Sie unter Bereitstellen eines benutzerdefinierten Duckingverhaltens.

Beispiele

Der folgende Beispielcode zeigt, wie Sie einen Verweis auf die IAudioSessionManager2-Schnittstelle des Audiogeräts abrufen.

HRESULT CreateSessionManager(IAudioSessionManager2** ppSessionManager)
{
 
    HRESULT hr = S_OK;
    
    IMMDevice* pDevice = NULL;
    IMMDeviceEnumerator* pEnumerator = NULL;
    IAudioSessionManager2* pSessionManager = NULL;


    // Create the device enumerator.
    CHECK_HR( hr = CoCreateInstance(
        __uuidof(MMDeviceEnumerator), 
        NULL, CLSCTX_ALL, 
        __uuidof(IMMDeviceEnumerator), 
        (void**)&pEnumerator));

    // Get the default audio device.
    CHECK_HR( hr = pEnumerator->GetDefaultAudioEndpoint(
                    eRender, eConsole, &pDevice));

    // Get the session manager.
    CHECK_HR( hr = pDevice->Activate(
        __uuidof(IAudioSessionManager2), CLSCTX_ALL,
        NULL, (void**)&pSessionManager));

    // Return the pointer to the caller.
    *(ppSessionManager) = pSessionManager;
    (*ppSessionManager)->AddRef();

done:

    // Clean up.
    SAFE_RELEASE(pSessionManager);
    SAFE_RELEASE(pEnumerator);
    SAFE_RELEASE(pDevice);

    return hr;
}

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

Kernaudioschnittstellen

IAudioSessionManager