Bagikan melalui


EndpointVolume API

Api EndpointVolume memungkinkan klien khusus untuk mengontrol dan memantau tingkat volume perangkat titik akhir audio. Klien mendapatkan referensi ke antarmuka di EndpointVolume API dengan mendapatkan antarmuka IMMDevice dari perangkat titik akhir audio dan memanggil metode IMMDevice::Activate.

File header Endpointvolume.h mendefinisikan antarmuka di Api EndpointVolume.

Aplikasi audio yang menggunakan MMDevice API dan WASAPI biasanya menggunakan antarmuka ISimpleAudioVolume untuk mengontrol tingkat volume per sesi. Hanya dua jenis aplikasi audio yang memerlukan penggunaan API EndpointVolume. Jenis aplikasi ini adalah:

  • Aplikasi yang mengelola tingkat volume master perangkat titik akhir audio, mirip dengan program kontrol volume Windows, Sndvol.exe.
  • Aplikasi audio profesional ("pro audio") yang memerlukan akses mode eksklusif ke perangkat titik akhir audio.

Penggunaan API EndpointVolume yang tidak tepat dapat mengganggu kebijakan audio Windows dan mengganggu pengaturan volume sistem pengguna.

Jika perangkat titik akhir audio mengimplementasikan volume perangkat keras dan kontrol bisukan, API EndpointVolume menggunakan kontrol tersebut untuk mengelola volume perangkat. Jika tidak, Api EndpointVolume mengimplementasikan kontrol dalam perangkat lunak, secara transparan ke klien.

Jika perangkat memiliki volume perangkat keras dan kontrol bisukan, perubahan yang dilakukan pada volume perangkat dan pengaturan bisukan melalui API EndpointVolume memengaruhi tingkat volume dalam mode bersama dan mode eksklusif. Jika perangkat tidak memiliki volume perangkat keras dan kontrol bisukan, perubahan yang dilakukan pada volume perangkat lunak dan kontrol bisukan melalui API EndpointVolume memengaruhi tingkat volume dalam mode bersama, tetapi tidak dalam mode eksklusif. Dalam mode eksklusif, klien dan perangkat bertukar data audio secara langsung, melewati kontrol perangkat lunak.

Untuk aplikasi yang harus mengelola volume perangkat keras dan kontrol bisukan, API EndpointVolume menawarkan dua keuntungan potensial melalui API DeviceTopology.

Pertama, sejumlah perangkat adaptor audio tidak memiliki kontrol volume perangkat keras. Jika perangkat tidak memiliki kontrol volume perangkat keras, antarmuka IAudioEndpointVolume di Api EndpointVolume secara otomatis menerapkan kontrol volume perangkat lunak pada aliran ke atau dari perangkat tersebut. Untuk klien Api EndpointVolume, hasilnya sama apakah kontrol volume diimplementasikan dalam perangkat keras oleh perangkat atau perangkat lunak oleh antarmuka API EndpointVolume.

Kedua, bahkan jika perangkat adaptor memang menerapkan kontrol volume perangkat keras, aplikasi yang menggunakan API DeviceTopology untuk menerapkan algoritma topologi-traversal mungkin gagal menemukan kontrol yang dicarinya. Biasanya, aplikasi semacam itu dirancang untuk melintasi topologi perangkat keras dari perangkat tertentu atau set perangkat terkait. Aplikasi berisiko gagal jika mencoba melintasi topologi perangkat yang belum dirancang untuk atau diuji secara khusus.

Hanya aplikasi khusus yang harus mengakses fungsi perangkat keras selain volume dan kontrol bisukan yang memerlukan penggunaan DEVICETopology API. Untuk aplikasi yang hanya memerlukan kontrol tingkat volume aliran mode eksklusif, API EndpointVolume lebih mudah digunakan dan berfungsi dengan andal dengan berbagai perangkat keras audio yang lebih luas.

Untuk contoh kode yang menggunakan antarmuka di EndpointVolume API, lihat topik berikut:

Untuk melihat sampel yang menggunakan Api EndpointVolume, lihat EndpointVolume di Windows SDK.

Api EndpointVolume mengimplementasikan antarmuka berikut.

Antarmuka Deskripsi
IAudioEndpointVolume Mewakili kontrol volume pada aliran audio ke atau dari perangkat titik akhir audio.
IAudioMeterInformation Mewakili pengukur puncak pada aliran audio ke atau dari perangkat titik akhir audio.

 

Selain itu, klien API EndpointVolume yang memerlukan pemberitahuan volume dan membisukan perubahan pada perangkat titik akhir audio harus menerapkan antarmuka berikut.

Antarmuka Deskripsi
IAudioEndpointVolumeCallback Menyediakan pemberitahuan saat tingkat volume atau status matikan suara perangkat titik akhir audio berubah.

 

Kontrol Volume

Antarmuka IMMDevice

IMMDevice::Activate

ISimpleAudioVolume

Referensi Pemrograman