Compartir a través de


Interfaz IAudioSessionManager2 (audiopolicy.h)

La interfaz IAudioSessionManager2 permite a una aplicación administrar submezclas para el dispositivo de audio.

Para obtener una referencia a una interfaz IAudioSessionManager2 , la aplicación debe activarla en el dispositivo de audio siguiendo estos pasos:

  1. Use una de las técnicas descritas en la página de interfaz IMMDevice para obtener una referencia a la interfaz IMMDevice para un dispositivo de punto de conexión de audio.
  2. Llame al método IMMDevice::Activate con el parámetro iid establecido en IID_IAudioSessionManager2.

Cuando la aplicación quiere liberar la instancia de interfaz IAudioSessionManager2 , la aplicación debe llamar al método Release de la interfaz.

El subproceso de aplicación que usa esta interfaz debe inicializarse para COM. Para obtener más información sobre la inicialización COM, consulte la descripción de la función CoInitializeEx en la documentación de Windows SDK.

Herencia

La interfaz IAudioSessionManager2 hereda de IAudioSessionManager. IAudioSessionManager2 también tiene estos tipos de miembros:

Métodos

La interfaz IAudioSessionManager2 tiene estos métodos.

 
IAudioSessionManager2::GetSessionEnumerator

El método GetSessionEnumerator obtiene un puntero al objeto enumerador de sesión de audio.
IAudioSessionManager2::RegisterDuckNotification

El método RegisterDuckNotification registra la aplicación con el administrador de sesiones para recibir notificaciones de pato.
IAudioSessionManager2::RegisterSessionNotification

El método RegisterSessionNotification registra la aplicación para recibir una notificación cuando se crea una sesión.
IAudioSessionManager2::UnregisterDuckNotification

El método UnregisterDuckNotification elimina un registro anterior por parte de la aplicación para recibir notificaciones.
IAudioSessionManager2::UnregisterSessionNotification

El método UnregisterSessionNotification elimina el registro para recibir una notificación cuando se crea una sesión.

Comentarios

Una aplicación puede usar esta interfaz para realizar las tareas siguientes:

  • Regístrese para recibir notificaciones de pato.
  • Regístrese para recibir una notificación cuando se cree una sesión.
  • Enumerar sesiones en el dispositivo de audio que se usó para obtener el puntero de interfaz.

Esta interfaz admite implementaciones personalizadas para atenuación de flujos o pato, una nueva característica en Windows 7. Una aplicación que reproduce una secuencia multimedia puede hacer que se comporte de forma diferente cuando se abre una nueva secuencia de comunicación en el dispositivo de comunicación predeterminado. Por ejemplo, la secuencia multimedia original se puede pausar mientras está abierta la nueva secuencia de comunicación. Para obtener más información sobre esta característica, consulte Uso de un dispositivo de comunicación.

Una aplicación que administra las secuencias multimedia y quiere proporcionar una implementación de pato personalizada, debe registrarse para recibir notificaciones cuando se produzcan eventos de sesión. En el caso de la atenuación de flujo, el sistema genera un evento de sesión cuando se abre o cierra una secuencia de comunicación en el dispositivo de comunicación predeterminado. Para obtener más información, vea Proporcionar un comportamiento de pato personalizado.

Ejemplos

En el código de ejemplo siguiente se muestra cómo obtener una referencia a la interfaz IAudioSessionManager2 del dispositivo de 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;
}

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado audiopolicy.h

Consulte también

Interfaces de audio principales

IAudioSessionManager