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 |
---|---|
|
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