Menghitung Perangkat Audio

Tugas pertama aplikasi audio klien adalah menemukan perangkat audio yang sesuai untuk digunakan. MMDevice API memungkinkan klien menemukan perangkat titik akhir audio dalam sistem dan menentukan perangkat mana yang cocok untuk digunakan aplikasi. API ini memungkinkan klien untuk mengambil koleksi perangkat titik akhir yang tersedia dan mendapatkan kemampuan setiap perangkat. File header Mmdeviceapi.h mendefinisikan antarmuka dalam MMDevice API.

Adaptor audio mungkin berisi beberapa perangkat—misalnya, perangkat penyajian gelombang dan perangkat penangkap gelombang. Ini adalah perangkat adaptor daripada perangkat titik akhir. Seperti disebutkan sebelumnya, perangkat adaptor didaftarkan oleh manajer Plug and Play, berbeda dengan perangkat titik akhir, yang didaftarkan oleh manajer titik akhir. Setiap perangkat adaptor biasanya mendukung satu atau beberapa perangkat titik akhir. Perangkat titik akhir penyajian (misalnya, headphone) dapat menerima aliran data audio dari aplikasi klien, dan perangkat titik akhir pengambilan (misalnya, mikrofon) dapat mengirim aliran audio ke aplikasi klien.

Sebelum menghitung perangkat titik akhir dalam sistem, klien harus terlebih dahulu memanggil fungsi Windows CoCreateInstance untuk membuat enumerator perangkat. Enumerator perangkat adalah objek dengan antarmuka IMMDeviceEnumerator. Untuk informasi tentang CoCreateInstance, lihat dokumentasi Windows SDK.

Klien memanggil metode IMMDeviceEnumerator::EnumAudioEndpoints untuk membuat kumpulan objek titik akhir. Setiap objek titik akhir mewakili perangkat titik akhir audio dalam sistem. Dalam panggilan ini, klien menentukan apakah koleksi harus berisi semua perangkat penyajian dalam sistem, semua perangkat pengambilan, atau keduanya.

Koleksi perangkat adalah objek dengan antarmuka IMMDeviceCollection. Setiap item dalam koleksi perangkat adalah objek titik akhir dengan setidaknya dua antarmuka berikut:

Setelah mengambil kumpulan perangkat titik akhir, klien dapat meminta properti masing-masing perangkat dalam koleksi untuk menentukan kesesuaiannya untuk digunakan. Untuk contoh kode yang memperlihatkan cara menghitung perangkat titik akhir dan mengkueri propertinya, lihat Properti Perangkat.

Setelah memilih perangkat yang sesuai, klien dapat memanggil metode IMMDevice::Activate untuk mengaktifkan antarmuka khusus perangkat di WASAPI, DEVICETopology API, dan EndpointVolume API.

Perangkat Titik Akhir Audio