Поделиться через


Интерфейс IAudioSessionManager2 (audiopolicy.h)

Интерфейс IAudioSessionManager2 позволяет приложению управлять субмикциями для звукового устройства.

Чтобы получить ссылку на интерфейс IAudioSessionManager2 , приложение должно активировать его на звуковом устройстве, выполнив следующие действия.

  1. Используйте один из методов, описанных на странице интерфейса IMMDevice , чтобы получить ссылку на интерфейс IMMDevice для устройства конечной точки аудио.
  2. Вызовите метод IMMDevice::Activate с параметром iid , для IID_IAudioSessionManager2.

Если приложение хочет освободить экземпляр интерфейса IAudioSessionManager2 , приложение должно вызвать метод Release интерфейса.

Поток приложения, использующий этот интерфейс, должен быть инициализирован для COM. Дополнительные сведения об инициализации COM см. в описании функции CoInitializeEx в документации по Windows SDK.

Наследование

Интерфейс IAudioSessionManager2 наследуется от IAudioSessionManager. IAudioSessionManager2 также содержит следующие типы членов:

Методы

Интерфейс IAudioSessionManager2 содержит следующие методы.

 
IAudioSessionManager2::GetSessionEnumerator

Метод GetSessionEnumerator получает указатель на объект перечислителя звукового сеанса.
IAudioSessionManager2::RegisterDuckNotification

Метод RegisterDuckNotification регистрирует приложение в диспетчере сеансов для получения оповещений.
IAudioSessionManager2::RegisterSessionNotification

Метод RegisterSessionNotification регистрирует приложение для получения уведомления при создании сеанса.
IAudioSessionManager2::UnregisterDuckNotification

Метод UnregisterDuckNotification удаляет предыдущую регистрацию приложения для получения уведомлений.
IAudioSessionManager2::UnregisterSessionNotification

Метод UnregisterSessionNotification удаляет регистрацию для получения уведомления при создании сеанса.

Комментарии

Приложение может использовать этот интерфейс для выполнения следующих задач:

  • Зарегистрируйтесь для получения уведомлений о утиных.
  • Зарегистрируйтесь для получения уведомления при создании сеанса.
  • Перечисление сеансов на звуковом устройстве, которое использовалось для получения указателя интерфейса.

Этот интерфейс поддерживает пользовательские реализации для затухания потока или утихания — новой функции в Windows 7. Приложение, в которое воспроизводит поток мультимедиа, может по-другому вести себя при открытии нового потока связи на устройстве связи по умолчанию. Например, исходный поток мультимедиа можно приостановить, пока открыт новый поток связи. Дополнительные сведения об этой функции см. в разделе Использование устройства связи.

Приложение, которое управляет потоками мультимедиа и хочет предоставить пользовательскую реализацию ducking, должно зарегистрироваться для получения уведомлений при возникновении событий сеанса. Для затухания потока событие сеанса вызывается системой при открытии или закрытии потока связи на устройстве связи по умолчанию. Дополнительные сведения см. в разделе Предоставление пользовательского поведения утки.

Примеры

В следующем примере кода показано, как получить ссылку на интерфейс IAudioSessionManager2 звукового устройства.

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

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header audiopolicy.h

См. также раздел

Основные звуковые интерфейсы

IAudioSessionManager