Antarmuka IAudioSessionManager2 (audiopolicy.h)

Antarmuka IAudioSessionManager2 memungkinkan aplikasi mengelola submix untuk perangkat audio.

Untuk mendapatkan referensi ke antarmuka IAudioSessionManager2 , aplikasi harus mengaktifkannya di perangkat audio dengan mengikuti langkah-langkah berikut:

  1. Gunakan salah satu teknik yang dijelaskan di halaman antarmuka IMMDevice untuk mendapatkan referensi ke antarmuka IMMDevice untuk perangkat titik akhir audio.
  2. Panggil metode IMMDevice::Activate dengan parameter iid diatur ke IID_IAudioSessionManager2.

Ketika aplikasi ingin merilis instans antarmuka IAudioSessionManager2 , aplikasi harus memanggil metode Rilis antarmuka.

Utas aplikasi yang menggunakan antarmuka ini harus diinisialisasi untuk COM. Untuk informasi selengkapnya tentang inisialisasi COM, lihat deskripsi fungsi CoInitializeEx dalam dokumentasi Windows SDK.

Warisan

Antarmuka IAudioSessionManager2 mewarisi dari IAudioSessionManager. IAudioSessionManager2 juga memiliki jenis anggota berikut:

Metode

Antarmuka IAudioSessionManager2 memiliki metode ini.

 
IAudioSessionManager2::GetSessionEnumerator

Metode GetSessionEnumerator mendapatkan penunjuk ke objek enumerator sesi audio.
IAudioSessionManager2::RegisterDuckNotification

Metode RegisterDuckNotification mendaftarkan aplikasi dengan manajer sesi untuk menerima pemberitahuan ducking.
IAudioSessionManager2::RegisterSessionNotification

Metode RegisterSessionNotification mendaftarkan aplikasi untuk menerima pemberitahuan saat sesi dibuat.
IAudioSessionManager2::UnregisterDuckNotification

Metode UnregisterDuckNotification menghapus pendaftaran sebelumnya oleh aplikasi untuk menerima pemberitahuan.
IAudioSessionManager2::UnregisterSessionNotification

Metode UnregisterSessionNotification menghapus pendaftaran untuk menerima pemberitahuan saat sesi dibuat.

Keterangan

Aplikasi dapat menggunakan antarmuka ini untuk melakukan tugas berikut:

  • Daftar untuk menerima pemberitahuan bebek.
  • Daftar untuk menerima pemberitahuan saat sesi dibuat.
  • Hitung sesi pada perangkat audio yang digunakan untuk mendapatkan penunjuk antarmuka.

Antarmuka ini mendukung implementasi kustom untuk pelambatan aliran atau ducking, fitur baru di Windows 7. Aplikasi yang memutar aliran media dapat membuatnya bersifat berbeda ketika aliran komunikasi baru dibuka pada perangkat komunikasi default. Misalnya, aliran media asli dapat dijeda saat aliran komunikasi baru terbuka. Untuk informasi selengkapnya tentang fitur ini, lihat Menggunakan Perangkat Komunikasi.

Aplikasi yang mengelola aliran media dan ingin menyediakan implementasi bebek kustom, harus mendaftar untuk menerima pemberitahuan ketika peristiwa sesi terjadi. Untuk peredaman aliran, peristiwa sesi dinaikkan oleh sistem saat aliran komunikasi dibuka atau ditutup pada perangkat komunikasi default. Untuk informasi selengkapnya, lihat Menyediakan Perilaku Bebek Kustom.

Contoh

Contoh kode berikut menunjukkan cara mendapatkan referensi ke antarmuka IAudioSessionManager2 dari perangkat 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;
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 R2 [hanya aplikasi desktop]
Target Platform Windows
Header audiopolicy.h

Lihat juga

Antarmuka Audio Inti

IAudioSessionManager