Share via


Interface IAudioSessionManager2 (audiopolicy.h)

A interface IAudioSessionManager2 permite que um aplicativo gerencie submixes para o dispositivo de áudio.

Para obter uma referência a uma interface IAudioSessionManager2 , o aplicativo deve ativá-lo no dispositivo de áudio seguindo estas etapas:

  1. Use uma das técnicas descritas na página interface IMMDevice para obter uma referência à interface IMMDevice para um dispositivo de ponto de extremidade de áudio.
  2. Chame o método IMMDevice::Activate com iid de parâmetro definido como IID_IAudioSessionManager2.

Quando o aplicativo deseja liberar a instância da interface IAudioSessionManager2 , o aplicativo deve chamar o método Release da interface.

O thread de aplicativo que usa essa interface deve ser inicializado para COM. Para obter mais informações sobre a inicialização COM, consulte a descrição da função CoInitializeEx na documentação do SDK do Windows.

Herança

A interface IAudioSessionManager2 herda de IAudioSessionManager. IAudioSessionManager2 também tem estes tipos de membros:

Métodos

A interface IAudioSessionManager2 tem esses métodos.

 
IAudioSessionManager2::GetSessionEnumerator

O método GetSessionEnumerator obtém um ponteiro para o objeto enumerador de sessão de áudio.
IAudioSessionManager2::RegisterDuckNotification

O método RegisterDuckNotification registra o aplicativo com o gerenciador de sessão para receber notificações de redução.
IAudioSessionManager2::RegisterSessionNotification

O método RegisterSessionNotification registra o aplicativo para receber uma notificação quando uma sessão é criada.
IAudioSessionManager2::UnregisterDuckNotification

O método UnregisterDuckNotification exclui um registro anterior do aplicativo para receber notificações.
IAudioSessionManager2::UnregisterSessionNotification

O método UnregisterSessionNotification exclui o registro para receber uma notificação quando uma sessão é criada.

Comentários

Um aplicativo pode usar essa interface para executar as seguintes tarefas:

  • Registre-se para receber notificações de redução.
  • Registre-se para receber uma notificação quando uma sessão for criada.
  • Enumerar sessões no dispositivo de áudio que foi usado para obter o ponteiro da interface.

Essa interface dá suporte a implementações personalizadas para atenuação de fluxo ou ducking, um novo recurso no Windows 7. Um aplicativo que reproduz um fluxo de mídia pode fazer com que ele se comporte de forma diferente quando um novo fluxo de comunicação é aberto no dispositivo de comunicação padrão. Por exemplo, o fluxo de mídia original pode ser pausado enquanto o novo fluxo de comunicação está aberto. Para obter mais informações sobre esse recurso, consulte Usando um dispositivo de comunicação.

Um aplicativo que gerencia os fluxos de mídia e deseja fornecer uma implementação de ducking personalizada deve se registrar para receber notificações quando ocorrerem eventos de sessão. Para atenuação de fluxo, um evento de sessão é gerado pelo sistema quando um fluxo de comunicação é aberto ou fechado no dispositivo de comunicação padrão. Para obter mais informações, consulte Fornecendo um comportamento de pato personalizado.

Exemplos

O código de exemplo a seguir mostra como obter uma referência à interface IAudioSessionManager2 do dispositivo de áudio.

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 Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho audiopolicy.h

Confira também

Principais interfaces de áudio

IAudioSessionManager