Condividi tramite


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

IEndpointVolume::VolumeStepDown

IEndpointVolume::VolumeStepUp