Metodo IAudioEndpointVolume::GetVolumeRange (endpointvolume.h)
Il metodo GetVolumeRange ottiene l'intervallo di volumi, in decibel, del flusso audio che entra o lascia il dispositivo dell'endpoint audio.
Sintassi
HRESULT GetVolumeRange(
[out] float *pflVolumeMindB,
[out] float *pflVolumeMaxdB,
[out] float *pflVolumeIncrementdB
);
Parametri
[out] pflVolumeMindB
Puntatore al livello minimo del volume. Questo parametro punta a una variabile float in cui il metodo scrive il livello minimo di volume in decibel. Questo valore rimane costante per la durata dell'istanza dell'interfaccia IAudioEndpointVolume .
[out] pflVolumeMaxdB
Puntatore al livello massimo del volume. Questo parametro punta a una variabile float in cui il metodo scrive il livello massimo di volume in decibel. Questo valore rimane costante per la durata dell'istanza dell'interfaccia IAudioEndpointVolume .
[out] pflVolumeIncrementdB
Puntatore all'incremento del volume. Questo parametro punta a una variabile float in cui il metodo scrive l'incremento del volume in decibel. Questo incremento rimane costante per la durata dell'istanza dell'interfaccia IAudioEndpointVolume .
Valore restituito
Se il metodo ha esito positivo, viene restituito S_OK. Se ha esito negativo, i codici restituiti possibili includono, ma non sono limitati a, i valori visualizzati nella tabella seguente.
Codice restituito | Descrizione |
---|---|
|
Il parametro pfLevelMinDB, pfLevelMaxDB o pfVolumeIncrementDB è NULL. |
Commenti
L'intervallo di volumi da vmin = *pfLevelMinDB a vmax = *pfLevelMaxDB è diviso in n intervalli uniformi di dimensioni vinc = * pfVolumeIncrementDB, dove
n = (vmax – vmin) / vinc.
I valori vmin, vmax e vinc vengono misurati in decibel. Il client può impostare il livello del volume su uno dei valori discreti n + 1 nell'intervallo compreso tra vmin e vmax.
I Metodi IAudioEndpointVolume::SetChannelVolumeLevel e IAudioEndpointVolume::SetMasterVolumeLevel accettano solo livelli di volume nell'intervallo tra vmin e vmax. Se il chiamante specifica un livello di volume all'esterno di questo intervallo, il metodo ha esito negativo e restituisce E_INVALIDARG. Se il chiamante specifica un livello di volume compreso tra due passaggi nell'intervallo di volumi, il metodo imposta il livello del volume dell'endpoint al passaggio più vicino al livello del volume richiesto e restituisce S_OK. Tuttavia, una chiamata successiva a IAudioEndpointVolume::GetChannelVolumeLevel o IAudioEndpointVolume::GetMasterVolumeLevel recupera il livello di volume richiesto dalla chiamata precedente a SetChannelVolumeLevel o SetMasterVolumeLevel, non il valore del passaggio.
Se il controllo del volume viene implementato nell'hardware, GetVolumeRange descrive l'intervallo e la granularità delle impostazioni del volume hardware. Al contrario, i passaggi segnalati dal metodo IEndpointVolume::GetVolumeStepInfo corrispondono a punti in una curva con taper audio calcolata nel software dai metodi IEndpointVolume::VolumeStepDown e IEndpointVolume::VolumeStepUp. Entrambi i metodi calcolano prima il livello del volume idealizzato che corrisponde al punto successivo della curva. Successivamente, il metodo seleziona l'impostazione del volume hardware che è l'approssimazione migliore per il livello idealizzato. Per altre informazioni sulle curve con taper audio, vedere Controlli volume con tocco audio.
Requisiti
Client minimo supportato | Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | endpointvolume.h |
Vedi anche
Interfaccia IAudioEndpointVolume
IAudioEndpointVolume::GetChannelVolumeLevel
IAudioEndpointVolume::GetMasterVolumeLevel
IAudioEndpointVolume::SetChannelVolumeLevel
IAudioEndpointVolume::SetMasterVolumeLevel
IEndpointVolume::GetVolumeStepInfo