Metode IAudioEndpointVolume::GetVolumeRange (endpointvolume.h)

Metode GetVolumeRange mendapatkan rentang volume, dalam desibel, dari aliran audio yang masuk atau meninggalkan perangkat titik akhir audio.

Sintaks

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

Parameter

[out] pflVolumeMindB

Arahkan ke tingkat volume minimum. Parameter ini menunjuk ke variabel float tempat metode menulis tingkat volume minimum dalam desibel. Nilai ini tetap konstan selama masa pakai instans antarmuka IAudioEndpointVolume .

[out] pflVolumeMaxdB

Arahkan ke tingkat volume maksimum. Parameter ini menunjuk ke variabel float tempat metode menulis tingkat volume maksimum dalam desibel. Nilai ini tetap konstan selama masa pakai instans antarmuka IAudioEndpointVolume .

[out] pflVolumeIncrementdB

Arahkan ke kenaikan volume. Parameter ini menunjuk ke variabel float tempat metode menulis kenaikan volume dalam desibel. Kenaikan ini tetap konstan selama masa pakai instans antarmuka IAudioEndpointVolume .

Mengembalikan nilai

Jika metode berhasil, metode akan mengembalikan S_OK. Jika gagal, kemungkinan kode pengembalian menyertakan, tetapi tidak terbatas pada, nilai yang diperlihatkan dalam tabel berikut.

Menampilkan kode Deskripsi
E_POINTER
Parameter pfLevelMinDB, pfLevelMaxDB, atau pfVolumeIncrementDB adalah NULL.

Keterangan

Rentang volume dari vmin = *pfLevelMinDB hingga vmax = *pfLevelMaxDB dibagi menjadi n interval seragam vinc ukuran = *pfVolumeIncrementDB, di mana

n = (vmax – vmin) / vinc.

Nilai vmin, vmax, dan vinc diukur dalam desibel. Klien dapat mengatur tingkat volume ke salah satu dari n + 1 nilai diskrit dalam rentang dari vmin ke vmax.

Metode IAudioEndpointVolume::SetChannelVolumeLevel dan IAudioEndpointVolume::SetMasterVolumeLevel hanya menerima tingkat volume dalam rentang dari vmin hingga vmax. Jika pemanggil menentukan tingkat volume di luar rentang ini, metode gagal dan mengembalikan E_INVALIDARG. Jika penelepon menentukan tingkat volume yang berada di antara dua langkah dalam rentang volume, metode mengatur tingkat volume titik akhir ke langkah yang paling dekat dengan tingkat volume yang diminta dan mengembalikan S_OK. Namun, panggilan berikutnya ke IAudioEndpointVolume::GetChannelVolumeLevel atau IAudioEndpointVolume::GetMasterVolumeLevel mengambil tingkat volume yang diminta oleh panggilan sebelumnya ke SetChannelVolumeLevel atau SetMasterVolumeLevel, bukan nilai langkah.

Jika kontrol volume diterapkan dalam perangkat keras, GetVolumeRange menjelaskan rentang dan granularitas pengaturan volume perangkat keras. Sebaliknya, langkah-langkah yang dilaporkan oleh metode IEndpointVolume::GetVolumeStepInfo sesuai dengan poin pada kurva audio-tapered yang dihitung dalam perangkat lunak oleh metode IEndpointVolume::VolumeStepDown dan IEndpointVolume::VolumeStepUp . Salah satu metode pertama-tama menghitung tingkat volume ideal yang sesuai dengan titik berikutnya pada kurva. Selanjutnya, metode memilih pengaturan volume perangkat keras yang merupakan perkiraan terbaik ke tingkat ideal. Untuk informasi selengkapnya tentang kurva audio-tapered, lihat Audio-Tapered Volume Controls.

Persyaratan

   
Klien minimum yang didukung Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header endpointvolume.h

Lihat juga

Antarmuka IAudioEndpointVolume

IAudioEndpointVolume::GetChannelVolumeLevel

IAudioEndpointVolume::GetMasterVolumeLevel

IAudioEndpointVolume::SetChannelVolumeLevel

IAudioEndpointVolume::SetMasterVolumeLevel

IEndpointVolume::GetVolumeStepInfo

IEndpointVolume::VolumeStepDown

IEndpointVolume::VolumeStepUp