Share via


Interface IAudioSessionManager2 (audiopolicy.h)

L’interface IAudioSessionManager2 permet à une application de gérer les sous-mélanges pour le périphérique audio.

Pour obtenir une référence à une interface IAudioSessionManager2 , l’application doit l’activer sur le périphérique audio en procédant comme suit :

  1. Utilisez l’une des techniques décrites dans la page d’interface IMMDevice pour obtenir une référence à l’interface IMMDevice pour un appareil de point de terminaison audio.
  2. Appelez la méthode IMMDevice ::Activate avec le paramètre iid défini sur IID_IAudioSessionManager2.

Lorsque l’application souhaite libérer l’interface IAudioSessionManager2 instance, l’application doit appeler la méthode Release de l’interface.

Le thread d’application qui utilise cette interface doit être initialisé pour COM. Pour plus d’informations sur l’initialisation COM, consultez la description de la fonction CoInitializeEx dans la documentation SDK Windows.

Héritage

L’interface IAudioSessionManager2 hérite de IAudioSessionManager. IAudioSessionManager2 a également les types de membres suivants :

Méthodes

L’interface IAudioSessionManager2 possède ces méthodes.

 
IAudioSessionManager2 ::GetSessionEnumerator

La méthode GetSessionEnumerator obtient un pointeur vers l’objet énumérateur de session audio.
IAudioSessionManager2 ::RegisterDuckNotification

La méthode RegisterDuckNotification inscrit l’application auprès du gestionnaire de sessions pour recevoir des notifications de suppression.
IAudioSessionManager2 ::RegisterSessionNotification

La méthode RegisterSessionNotification inscrit l’application pour recevoir une notification lors de la création d’une session.
IAudioSessionManager2 ::UnregisterDuckNotification

La méthode UnregisterDuckNotification supprime une inscription précédente par l’application pour recevoir des notifications.
IAudioSessionManager2 ::UnregisterSessionNotification

La méthode UnregisterSessionNotification supprime l’inscription pour recevoir une notification lors de la création d’une session.

Remarques

Une application peut utiliser cette interface pour effectuer les tâches suivantes :

  • Inscrivez-vous pour recevoir des notifications de canardage.
  • Inscrivez-vous pour recevoir une notification lors de la création d’une session.
  • Énumérez les sessions sur le périphérique audio utilisé pour obtenir le pointeur d’interface.

Cette interface prend en charge les implémentations personnalisées pour l’atténuation ou lecanardage de flux, une nouvelle fonctionnalité de Windows 7. Une application qui lit un flux multimédia peut faire en sorte qu’il se comporte différemment lorsqu’un nouveau flux de communication est ouvert sur l’appareil de communication par défaut. Par exemple, le flux multimédia d’origine peut être suspendu pendant que le nouveau flux de communication est ouvert. Pour plus d’informations sur cette fonctionnalité, consultez Utilisation d’un appareil de communication.

Une application qui gère les flux multimédias et qui souhaite fournir une implémentation de canardage personnalisée, doit s’inscrire pour recevoir des notifications lorsque des événements de session se produisent. Pour l’atténuation du flux, un événement de session est déclenché par le système lorsqu’un flux de communication est ouvert ou fermé sur l’appareil de communication par défaut. Pour plus d’informations, consultez Fournir un comportement de canardage personnalisé.

Exemples

L’exemple de code suivant montre comment obtenir une référence à l’interface IAudioSessionManager2 du périphérique audio.

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;
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête audiopolicy.h

Voir aussi

Interfaces audio principales

IAudioSessionManager