Ses Cihazlarını Numaralandırma
İstemci ses uygulamasının ilk görevi, kullanılacak uygun bir ses cihazı bulmaktır. MMDevice API, istemcilerin sistemde ses uç noktası cihazlarını bulmasına ve hangi cihazların uygulamanın kullanımına uygun olduğunu belirlemesine olanak tanır. Bu API istemcilerin kullanılabilir uç nokta cihazlarının koleksiyonlarını almasını ve her cihazın özelliklerini almasını sağlar. Mmdeviceapi.h üst bilgi dosyası, MMDevice API'sindeki arabirimleri tanımlar.
Ses bağdaştırıcısı, dalga işleme cihazı ve dalga yakalama cihazı gibi çeşitli cihazlar içerebilir. Bunlar uç nokta cihazları yerine bağdaştırıcı cihazlarıdır. Daha önce belirtildiği gibi, bağdaştırıcı cihazlar Tak ve Çalıştır yöneticisi tarafından kaydedilir; bu, uç nokta yöneticisi tarafından kaydedilen uç nokta cihazlarından farklıdır. Her bağdaştırıcı cihazı genellikle bir veya daha fazla uç nokta cihazını destekler. İşleme uç noktası cihazı (örneğin, kulaklıklar) bir istemci uygulamasından ses verisi akışı alabilir ve yakalama uç noktası cihazı (örneğin, mikrofon) bir istemci uygulamasına ses akışı gönderebilir.
Sistemdeki uç nokta cihazlarını listelemeden önce istemcinin bir cihaz numaralandırıcısı oluşturmak için önce Windows CoCreateInstance işlevini çağırması gerekir. Cihaz numaralandırıcısı, IMMDeviceEnumerator arabirimine sahip bir nesnedir. CoCreateInstancehakkında bilgi için Windows SDK belgelerine bakın.
İstemci, uç nokta nesnelerinin bir koleksiyonunu oluşturmak için IMMDeviceEnumerator::EnumAudioEndpoints yöntemini çağırır. Her uç nokta nesnesi, sistemdeki bir ses uç noktası cihazını temsil eder. Bu çağrıda istemci, koleksiyonun sistemdeki tüm işleme cihazlarını mı yoksa yakalama cihazlarını mı yoksa her ikisini birden mi içermesi gerektiğini belirtir.
Cihaz koleksiyonu, IMMDeviceCollection arabirimine sahip bir nesnedir. Cihaz koleksiyonundaki her öğe, en az aşağıdaki iki arabirime sahip bir uç nokta nesnesidir:
- arabirimine sahip bir IMMDevice. İstemci, IMMDeviceCollection::Item yöntemini çağırarak cihaz koleksiyonundaki bir uç nokta nesnesinin IMMDevice arabirimine başvuru alır.
- IMMEndpoint arabirimi. İstemci, IMMDevice::QueryInterface yöntemini çağırarak bir uç nokta nesnesinin IMMEndpoint arabirimine başvuru alır.
Uç nokta cihaz koleksiyonunu aldıktan sonra istemci, kullanıma uygunluğunu belirlemek için koleksiyondaki tek tek cihazların özelliklerini sorgulayabilir. Uç nokta cihazlarını listelemeyi ve özelliklerini sorgulamayı gösteren bir kod örneği için bkz. Cihaz Özellikleri.
Uygun bir cihaz seçtikten sonra, istemci, IMMDevice::Activate yöntemini çağırarak, cihazla ilgili arayüzleri WASAPI, DeviceTopology APIve EndpointVolume APIiçinde etkinleştirebilir.
İlgili konular