Freigeben über


IAudioEndpointVolume::GetVolumeRange-Methode (endpointvolume.h)

Die GetVolumeRange-Methode ruft den Lautstärkebereich des Audiodatenstroms in Dezibel ab, der in das Audioendpunktgerät eintritt oder dieses verlässt.

Syntax

HRESULT GetVolumeRange(
  [out] float *pflVolumeMindB,
  [out] float *pflVolumeMaxdB,
  [out] float *pflVolumeIncrementdB
);

Parameter

[out] pflVolumeMindB

Zeiger auf die Mindestlautstärke. Dieser Parameter verweist auf eine float-Variable , in die die -Methode die minimale Volumeebene in Dezibel schreibt. Dieser Wert bleibt für die Lebensdauer der IAudioEndpointVolume-Schnittstelle instance konstant.

[out] pflVolumeMaxdB

Zeiger auf die maximale Lautstärke. Dieser Parameter verweist auf eine float-Variable , in die die Methode die maximale Lautstärke in Dezibel schreibt. Dieser Wert bleibt für die Lebensdauer der IAudioEndpointVolume-Schnittstelle instance konstant.

[out] pflVolumeIncrementdB

Zeiger auf das Volume-Inkrement. Dieser Parameter verweist auf eine float-Variable , in die die Methode den Volumeinkrement in Dezibel schreibt. Dieses Inkrement bleibt für die Lebensdauer der IAudioEndpointVolume-Schnittstelle instance konstant.

Rückgabewert

Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Wenn ein Fehler auftritt, können mögliche Rückgabecodes die in der folgenden Tabelle gezeigten Werte umfassen, sind jedoch nicht darauf beschränkt.

Rückgabecode Beschreibung
E_POINTER
Der Parameter pfLevelMinDB, pfLevelMaxDB oder pfVolumeIncrementDB ist NULL.

Hinweise

Der Volumebereich von vmin = *pfLevelMinDB bis vmax = *pfLevelMaxDB ist in n gleichmäßige Intervalle der Größe vinc = *pfVolumeIncrementDB unterteilt, wobei

n = (vmax – vmin) / vinc.

Die Werte vmin, vmax und vinc werden in Dezibel gemessen. Der Client kann die Volumeebene auf einen von n + 1 diskreten Werten im Bereich von vmin bis vmax festlegen.

Die Methoden IAudioEndpointVolume::SetChannelVolumeLevel und IAudioEndpointVolume::SetMasterVolumeLevel akzeptieren nur Volumepegel im Bereich von vmin bis vmax. Wenn der Aufrufer eine Volumeebene außerhalb dieses Bereichs angibt, schlägt die Methode fehl und gibt E_INVALIDARG zurück. Wenn der Aufrufer eine Volumeebene angibt, die zwischen zwei Schritten im Volumebereich liegt, legt die Methode die Endpunktvolumeebene auf den Schritt fest, der der angeforderten Volumeebene am nächsten liegt, und gibt S_OK zurück. Ein nachfolgender Aufruf von IAudioEndpointVolume::GetChannelVolumeLevel oder IAudioEndpointVolume::GetMasterVolumeLevel ruft jedoch die Volumeebene ab, die vom vorherigen Aufruf von SetChannelVolumeLevel oder SetMasterVolumeLevel angefordert wurde, nicht den Schrittwert.

Wenn die Lautstärkeregelung in Hardware implementiert ist, beschreibt GetVolumeRange den Bereich und die Granularität der Hardwarevolume-Einstellungen. Im Gegensatz dazu entsprechen die Schritte, die von der IEndpointVolume::GetVolumeStepInfo-Methode gemeldet werden, Punkten auf einer Audiokurve, die in der Software von den Methoden IEndpointVolume::VolumeStepDown und IEndpointVolume::VolumeStepUp berechnet werden. Bei beiden Methoden wird zunächst die idealisierte Volumeebene berechnet, die dem nächsten Punkt auf der Kurve entspricht. Als Nächstes wählt die Methode die Hardwarevolumeeinstellung aus, die die beste Annäherung an die idealisierte Ebene darstellt. Weitere Informationen zu Audioverknüngungskurven finden Sie unter Audioverknen von Lautstärkesteuerungen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile endpointvolume.h

Weitere Informationen

IAudioEndpointVolume-Schnittstelle

IAudioEndpointVolume::GetChannelVolumeLevel

IAudioEndpointVolume::GetMasterVolumeLevel

IAudioEndpointVolume::SetChannelVolumeLevel

IAudioEndpointVolume::SetMasterVolumeLevel

IEndpointVolume::GetVolumeStepInfo

IEndpointVolume::VolumeStepDown

IEndpointVolume::VolumeStepUp