Bagikan melalui


IAudioSessionEvents::OnChannelVolumeChanged method (audiopolicy.h)

Metode OnChannelVolumeChanged memberi tahu klien bahwa tingkat volume saluran audio dalam submix sesi telah berubah.

Sintaks

HRESULT OnChannelVolumeChanged(
  [in] DWORD    ChannelCount,
  [in] float [] NewChannelVolumeArray,
  [in] DWORD    ChangedChannel,
  [in] LPCGUID  EventContext
);

Parameter

[in] ChannelCount

Jumlah saluran. Parameter ini menentukan jumlah saluran audio dalam submix sesi.

[in] NewChannelVolumeArray

Penunjuk ke array tingkat volume. Setiap elemen adalah nilai jenis float yang menentukan tingkat volume untuk saluran tertentu. Setiap tingkat volume adalah nilai dalam rentang 0,0 hingga 1,0, di mana 0,0 diam dan 1,0 adalah volume penuh (tanpa redaman). Jumlah elemen dalam array ditentukan oleh parameter ChannelCount . Jika aliran audio berisi saluran n , saluran diberi nomor dari 0 hingga n– 1. Elemen array yang indeksnya cocok dengan nomor saluran, berisi tingkat volume untuk saluran tersebut. Asumsikan bahwa array tetap valid hanya selama durasi panggilan.

[in] ChangedChannel

Jumlah saluran yang tingkat volumenya berubah. Gunakan nilai ini sebagai indeks ke dalam array NewChannelVolumeArray . Jika submix sesi berisi saluran n , saluran diberi nomor dari 0 hingga n– 1. Jika lebih dari satu saluran mungkin telah berubah (misalnya, sebagai akibat dari panggilan ke metode IChannelAudioVolume::SetAllVolumes ), nilai ChangedChannel adalah (DWORD)(–1).

[in] EventContext

Nilai konteks peristiwa. Ini adalah nilai yang sama dengan yang diteruskan pemanggil ke metode IChannelAudioVolume::SetChannelVolume atau IChannelAudioVolume::SetAllVolumes dalam panggilan yang memulai perubahan tingkat volume saluran. Untuk informasi selengkapnya, lihat Keterangan.

Menampilkan nilai

Jika metode berhasil, metode akan mengembalikan S_OK. Jika gagal, kode kesalahan akan dikembalikan.

Keterangan

Manajer sesi memanggil metode ini setiap kali panggilan ke metode IChannelAudioVolume::SetChannelVolume atau IChannelAudioVolume::SetAllVolumes berhasil memperbarui tingkat volume satu atau beberapa saluran dalam submix sesi. Perhatikan bahwa panggilan OnChannelVolumeChanged terjadi terlepas dari apakah tingkat volume saluran baru atau tingkat berbeda nilai dari tingkat volume saluran atau tingkat sebelumnya.

Parameter EventContext menyediakan sarana bagi klien untuk membedakan antara perubahan volume saluran yang dimulainya dan yang dimulai oleh beberapa klien lain. Saat memanggil metode IChannelAudioVolume::SetChannelVolume atau IChannelAudioVolume::SetAllVolumes , klien meneruskan nilai parameter EventContext yang dapat dikenali implementasi metode OnChannelVolumeChanged .

Untuk contoh kode yang mengimplementasikan metode di antarmuka IAudioSessionEvents , lihat Peristiwa Sesi Audio.

Persyaratan

Persyaratan Nilai
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 audiopolicy.h

Lihat juga

Antarmuka IAudioSessionEvents

IChannelAudioVolume::SetAllVolumes

IChannelAudioVolume::SetChannelVolume