Aracılığıyla paylaş


EndpointVolume API'si

EndpointVolume API'si, özel istemcilerin ses uç noktası cihazlarının birim düzeylerini denetlemesine ve izlemesine olanak tanır. İstemci, bir ses uç noktası cihazının IMMDevice arabirimini alarak ve IMMDevice::Activate yöntemini çağırarak EndpointVolume API'sindeki arabirimlere başvurular alır.

Endpointvolume.h üst bilgi dosyası EndpointVolume API'sindeki arabirimleri tanımlar.

MMDevice API'si ve WASAPI kullanan ses uygulamaları genellikle ISimpleAudioVolume arabirimini kullanarak ses düzeylerini her oturuma göre denetler. Yalnızca iki tür ses uygulaması EndpointVolume API'sinin kullanılmasını gerektirir. Bu uygulama türleri şunlardır:

  • Windows birim denetimi programına benzer şekilde ses uç noktası cihazlarının ana birim düzeylerini yöneten uygulamalar Sndvol.exe.
  • Ses uç noktası cihazlarına özel mod erişimi gerektiren profesyonel ses ("pro ses") uygulamaları.

EndpointVolume API'sinin uygunsuz kullanımı Windows ses ilkesini etkileyebilir ve kullanıcının sistem ses düzeyi ayarlarını kesintiye uğratabilir.

Bir ses uç noktası cihazı donanım birimi ve sesi kapatma denetimleri uyguluyorsa EndpointVolume API'si cihaz birimini yönetmek için bu denetimleri kullanır. Aksi takdirde EndpointVolume API'sinin yazılımdaki denetimleri istemciye saydam bir şekilde uygulaması gerekir.

Bir cihazın donanım birimi ve sesi kapatma denetimleri varsa, EndpointVolume API'sini kullanarak cihazın biriminde yapılan değişiklikler, hem paylaşılan modda hem de özel kullanım modunda ses düzeyini etkiler. Bir cihazda donanım hacmi ve sessiz denetimleri yoksa, EndpointVolume API'sini kullanarak yazılım biriminde yapılan değişiklikler ve denetimlerin sesini kapatma, paylaşılan modda birim düzeyini etkiler, ancak özel kullanım modunda etkilemez. Özel kullanım modunda istemci ve cihaz, yazılım denetimlerini atlayarak ses verilerini doğrudan değiştirir.

Donanım hacmini yönetmesi ve denetimleri kapatması gereken uygulamalar için EndpointVolume API'sinin DeviceTopology API'sine göre iki olası avantajı.

İlk olarak, bir dizi ses bağdaştırıcısı cihazında donanım ses denetimi yok. Bir cihazda donanım birimi denetimi yoksa, EndpointVolume API'sindeki IAudioEndpointVolume arabirimi, bu cihaza veya cihazdan akışta otomatik olarak bir yazılım birimi denetimi uygular. EndpointVolume API'sinin istemcisi için, birim denetiminin cihaz tarafından donanımda veya EndpointVolume API arabirimi tarafından yazılımda uygulanmasıyla aynı sonuç elde edilir.

İkinci olarak, bağdaştırıcı cihazı donanım birimi denetimleri uygulasa bile, topoloji çapraz geçiş algoritması uygulamak için DeviceTopology API'sini kullanan bir uygulama, aradığı denetimi bulamayabilir. Genellikle, böyle bir uygulama belirli bir cihazın veya ilgili cihaz kümesinin donanım topolojisini çapraz geçiş yapmak için tasarlanmıştır. Uygulama, özel olarak tasarlanmamış veya test edilmemiş bir cihazın topolojisini geçmeyi denerse başarısız olur.

Yalnızca birim ve sesi kapatma denetimleri dışındaki donanım işlevlerine erişmesi gereken özel uygulamalar Için DeviceTopology API'sinin kullanılması gerekir. Yalnızca özel modlu bir akışın ses düzeyi denetimi gerektiren uygulamalar için EndpointVolume API'sinin kullanımı daha kolaydır ve daha geniş bir ses donanımı cihazı yelpazesiyle güvenilir bir şekilde çalışır.

EndpointVolume API'sindeki arabirimleri kullanan kod örnekleri için aşağıdaki konulara bakın:

EndpointVolume API'sini kullanan bir örneği görmek için bkz. Windows SDK'sında EndpointVolume .

EndpointVolume API'sinde aşağıdaki arabirimler uygulanır.

Arayüz Açıklama
IAudioEndpointVolume Ses uç noktası cihazına veya bir ses uç noktasından ses akışındaki ses denetimlerini temsil eder.
IAudioMeterInformation Ses uç noktası cihazına veya bir ses uç noktasından ses akışındaki en yüksek ölçümü temsil eder.

 

Ayrıca, ses uç noktası cihazlarında birim bildirimi ve sessize alma değişiklikleri gerektiren EndpointVolume API'sinin istemcileri aşağıdaki arabirimi uygulamalıdır.

Arayüz Açıklama
IAudioEndpointVolumeCallback Ses uç noktası cihazının ses düzeyi veya sessize alma durumu değiştiğinde bildirimler sağlar.

 

birim denetimlerini

IMMDevice Arabirimi

IMMDevice::Activate

ISimpleAudioVolume

Programlama Başvurusu