Parameter Pengelompokan
Parameter pengelompokan mengidentifikasi kumpulan sesi audio yang semuanya dikontrol oleh kontrol volume tunggal dalam program kontrol volume sistem, Sndvol. Parameter pengelompokan adalah GUID yang secara unik mengidentifikasi koleksi dalam lingkup komputer.
Tujuan parameter pengelompokan mirip dengan GUID sesi untuk sesi lintas proses. Artinya, parameter pengelompokan memungkinkan pengguna mengontrol kumpulan aliran dari sejumlah proses sebagai satu unit. Namun, parameter pengelompokan melayani tujuan ini dalam keadaan di mana sesi lintas proses tidak dapat memberikan solusi.
Jika beberapa klien menetapkan aliran masing-masing ke sesi terpisah tetapi menetapkan parameter pengelompokan yang sama ke semua sesi, Sndvol menampilkan kontrol volume tunggal untuk sesi ini. Untuk memberikan dukungan untuk parameter pengelompokan, Sndvol, atau aplikasi kontrol volume serupa harus melakukan hal berikut:
- Sebelum menampilkan kontrol volume, periksa parameter pengelompokan semua sesi aktif. Kelompokkan bersama-sama di bawah kontrol volume tunggal semua sesi yang memiliki parameter pengelompokan yang sama.
- Saat pengguna mengubah pengaturan pada kontrol volume untuk parameter pengelompokan tertentu, perbarui tingkat volume dari semua sesi yang berbagi parameter pengelompokan tersebut.
Parameter pengelompokan membantu mengurangi jumlah kontrol volume yang ditampilkan oleh Sndvol. Pengguna mungkin menjadi bingung jika Sndvol mengacaukan tampilannya dengan terlalu banyak kontrol. Tanpa dukungan untuk parameter pengelompokan, Sndvol akan selalu menampilkan kontrol volume terpisah untuk setiap sesi, yang mungkin tidak sesuai dalam semua keadaan. Selain itu, parameter pengelompokan menyediakan cara yang mudah untuk memastikan bahwa sesi yang berisi jenis konten audio serupa dapat dengan mudah diatur ke tingkat volume yang sama.
Seperti yang dijelaskan sebelumnya, API audio tingkat lebih tinggi biasanya menetapkan alirannya ke sesi default khusus proses (diidentifikasi oleh nilai GUID sesi GUID_NULL). Default ini memungkinkan Sndvol menampilkan kontrol volume terpisah untuk setiap proses aplikasi klien, yang sering menjadi perilaku yang diinginkan. Selain itu, jika beberapa instans klien yang sama berjalan dalam proses terpisah tetapi memerlukan kontrol volume bersama tunggal, klien cukup menetapkan aliran mereka ke sesi lintas proses yang sama. Tidak satu pun dari kasus ini memerlukan penggunaan parameter pengelompokan. Namun, satu kasus penting, seperti yang dicontohkan oleh Microsoft Internet Explorer, memang memerlukan penggunaan parameter pengelompokan untuk mencapai perilaku yang diinginkan.
Internet Explorer memungkinkan pengguna membuka beberapa jendela browser, dan jendela ini mungkin tidak semuanya berjalan dalam proses yang sama. Pengguna mungkin menjadi bingung jika Sndvol menampilkan kontrol volume terpisah untuk setiap instans aplikasi, yang semuanya memiliki label yang sama, "Internet Explorer." Sesi lintas proses bukanlah solusi yang layak dalam hal iniājika beberapa instans Internet Explorer berjalan dalam proses yang berbeda, mereka mungkin tidak dapat menetapkan semua aliran audio mereka ke satu sesi lintas proses. Alasannya adalah bahwa jendela Internet Explorer mungkin menjalankan instans Pemutar Media Windows atau beberapa plug-in multimedia lainnya yang menggunakan API audio tingkat lebih tinggi untuk memutar aliran audionya. API ini biasanya menetapkan aliran dalam proses ke sesi default khusus proses. Internet Explorer tidak memiliki kontrol atas penetapan aliran ini ke sesi.
WASAPI memecahkan masalah ini dengan mengaktifkan setiap instans Internet Explorer untuk mengakses kontrol sesi untuk sesi default, khusus proses, dan untuk menetapkan parameter pengelompokan ke sesi tersebut. Jika semua instans Internet Explorer menetapkan parameter pengelompokan yang sama ke semua sesi audio mereka, maka Sndvol akan menampilkan kontrol volume tunggal untuk sesi ini.
Secara default, sesi bukan milik pengelompokan apa pun. Jika klien tidak secara eksplisit menetapkan sesi ke pengelompokan, maka Sndvol menampilkan kontrol volume khusus untuk sesi tersebut. Nilai parameter pengelompokan GUID_NULL menunjukkan bahwa sesi bukan milik pengelompokan apa pun. Jika tidak ada klien yang secara eksplisit menetapkan parameter pengelompokan ke sesi, maka nilai parameter pengelompokan untuk sesi tersebut GUID_NULL secara default.
Klien dapat secara dinamis mengubah pengelompokan tempat sesi ditetapkan.
Pengelompokan dapat mencakup kombinasi sesi lintas proses dan sesi khusus proses pada perangkat titik akhir audio.
Antarmuka pengguna Sndvol memungkinkan pengguna untuk menampilkan kontrol volume hanya untuk satu perangkat titik akhir audio pada satu waktu. Ketika pengguna menyesuaikan kontrol volume untuk perangkat tertentu, tingkat volume sesi yang terhubung ke perangkat lain tidak terpengaruh. Secara khusus, kontrol volume untuk parameter pengelompokan tertentu hanya memengaruhi sesi yang berbagi parameter pengelompokan dan terhubung ke perangkat yang saat ini dipilih. Sesi yang kebetulan memiliki parameter pengelompokan yang identik tetapi terhubung ke perangkat lain tidak terpengaruh.
Seperti yang dijelaskan sebelumnya, Sndvol melabeli setiap kontrol volume yang ditampilkannya dengan nama tampilan dan ikon. Dalam kasus kontrol volume untuk pengelompokan, Sndvol secara sewenang-wenang memilih salah satu sesi dalam pengelompokan sebagai sumber untuk nama tampilan dan ikon yang ditampilkannya dengan kontrol volume. Dengan demikian, untuk memastikan bahwa Sndvol selalu menampilkan nama tampilan dan ikon yang sama untuk pengelompokan, semua instans aplikasi yang menetapkan sesi ke pengelompokan tersebut harus memastikan bahwa sesi masing-masing memiliki nama tampilan dan ikon yang sama. Untuk informasi selengkapnya tentang nama tampilan dan ikon, lihat Sesi Audio.
Aplikasi seperti Sndvol dapat mendaftarkan dirinya untuk menerima pemberitahuan ketika parameter pengelompokan untuk sesi berubah. Pemberitahuan tersebut mungkin berguna jika aplikasi menyimpan informasi tentang penetapan sesi ke parameter pengelompokan. Pemberitahuan menginformasikan aplikasi bahwa informasi yang di-cache mungkin tidak lagi valid.
Untuk menetapkan parameter pengelompokan ke sesi, panggil metode IAudioSessionControl::SetGroupingParam. Untuk mendapatkan parameter pengelompokan yang ditetapkan ke sesi, panggil metode IAudioSessionControl::GetGroupingParam.
Topik terkait