Menghitung Perangkat Audio
Tugas pertama aplikasi audio klien adalah menemukan perangkat audio yang sesuai untuk digunakan. API MMDevice 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, bukan 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 fungsiWindowsCoCreateInstance 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:
- Antarmuka IMMDevice. Klien memperoleh referensi ke antarmuka IMMDevice dari objek titik akhir pada koleksi perangkat dengan cara memanggil metode IMMDeviceCollection::Item.
- Antarmuka IMMEndpoint. Klien mendapatkan referensi ke antarmuka IMMEndpoint objek titik akhir dengan memanggil metode IMMDevice::QueryInterface.
Setelah mengambil kumpulan perangkat titik akhir, klien dapat memeriksa properti masing-masing perangkat dalam kumpulan untuk menentukan kesesuaiannya untuk digunakan. Untuk contoh kode yang memperlihatkan cara mengidentifikasi perangkat titik akhir dan meminta propertinya, lihat Properti Perangkat.
Setelah memilih perangkat yang sesuai, klien dapat memanggil metode IMMDevice::Aktifkan untuk mengaktifkan antarmuka khusus perangkat di WASAPI, API DeviceTopology , dan API EndpointVolume .
Topik terkait