Interfaccia IAudioSessionManager2 (audiopolicy.h)

L'interfaccia IAudioSessionManager2 consente a un'applicazione di gestire sottomix per il dispositivo audio.

Per ottenere un riferimento a un'interfaccia IAudioSessionManager2 , l'applicazione deve attivarla nel dispositivo audio seguendo questa procedura:

  1. Usare una delle tecniche descritte nella pagina dell'interfaccia IMMDevice per ottenere un riferimento all'interfaccia IMMDevice per un dispositivo endpoint audio.
  2. Chiamare il metodo IMMDevice::Activate con parametro iid impostato su IID_IAudioSessionManager2.

Quando l'applicazione vuole rilasciare l'istanza dell'interfaccia IAudioSessionManager2 , l'applicazione deve chiamare il metodo Release dell'interfaccia.

Il thread dell'applicazione che usa questa interfaccia deve essere inizializzato per COM. Per altre informazioni sull'inizializzazione COM, vedere la descrizione della funzione CoInitializeEx nella documentazione di Windows SDK.

Ereditarietà

L'interfaccia IAudioSessionManager2 eredita da IAudioSessionManager. IAudioSessionManager2 include anche questi tipi di membri:

Metodi

L'interfaccia IAudioSessionManager2 include questi metodi.

 
IAudioSessionManager2::GetSessionEnumerator

Il metodo GetSessionEnumerator ottiene un puntatore all'oggetto enumeratore sessione audio.
IAudioSessionManager2::RegisterDuckNotification

Il metodo RegisterDuckNotification registra l'applicazione con il gestore sessione per ricevere notifiche di anatratura.
IAudioSessionManager2::RegisterSessionNotification

Il metodo RegisterSessionNotification registra l'applicazione per ricevere una notifica quando viene creata una sessione.
IAudioSessionManager2::UnregisterDuckNotification

Il metodo UnregisterDuckNotification elimina una registrazione precedente dall'applicazione per ricevere notifiche.
IAudioSessionManager2::UnregisterSessionNotification

Il metodo UnregisterSessionNotification elimina la registrazione per ricevere una notifica quando viene creata una sessione.

Commenti

Un'applicazione può usare questa interfaccia per eseguire le attività seguenti:

  • Registrare per ricevere notifiche di anatraggio.
  • Registrare per ricevere una notifica quando viene creata una sessione.
  • Enumerare le sessioni nel dispositivo audio usato per ottenere il puntatore dell'interfaccia.

Questa interfaccia supporta implementazioni personalizzate per l'attenuazione del flusso o l'anatratura, una nuova funzionalità in Windows 7. Un'applicazione che riproduce un flusso multimediale può comportarsi in modo diverso quando viene aperto un nuovo flusso di comunicazione nel dispositivo di comunicazione predefinito. Ad esempio, il flusso multimediale originale può essere sospeso mentre il nuovo flusso di comunicazione è aperto. Per altre informazioni su questa funzionalità, vedere Uso di un dispositivo di comunicazione.

Un'applicazione che gestisce i flussi multimediali e vuole fornire un'implementazione personalizzata di anatraggio, deve registrarsi per ricevere notifiche quando si verificano eventi di sessione. Per l'attenuazione del flusso, un evento di sessione viene generato dal sistema quando un flusso di comunicazione viene aperto o chiuso nel dispositivo di comunicazione predefinito. Per altre informazioni, vedere Fornire un comportamento personalizzato di anatratura.

Esempio

Il codice di esempio seguente illustra come ottenere un riferimento all'interfaccia IAudioSessionManager2 del dispositivo 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;
}

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione audiopolicy.h

Vedi anche

Interfacce audio principali

IAudioSessionManager