Share via


Metodo IAudioSessionEvents::OnChannelVolumeChanged (audiopolicy.h)

Il metodo OnChannelVolumeChanged notifica al client che il livello di volume di un canale audio nella sottomix sessione è cambiato.

Sintassi

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

Parametri

[in] ChannelCount

Numero di canali. Questo parametro specifica il numero di canali audio nella sottomix sessione.

[in] NewChannelVolumeArray

Puntatore a una matrice di livelli di volume. Ogni elemento è un valore di tipo float che specifica il livello del volume per un determinato canale. Ogni livello di volume è un valore nell'intervallo da 0.0 a 1.0, dove 0.0 è silenzio e 1.0 è volume intero (nessuna attenuazione). Il numero di elementi nella matrice viene specificato dal parametro ChannelCount . Se un flusso audio contiene n canali, i canali vengono numerati da 0 a n- 1. L'elemento array il cui indice corrisponde al numero di canale, contiene il livello del volume per tale canale. Si supponga che la matrice rimanga valida solo per la durata della chiamata.

[in] ChangedChannel

Numero del canale il cui livello di volume è cambiato. Usare questo valore come indice nella matrice NewChannelVolumeArray . Se la sottomix sessione contiene n canali, i canali vengono numerati da 0 a n- 1. Se più di un canale potrebbe essere cambiato (ad esempio, come risultato di una chiamata al metodo IChannelAudioVolume::SetAllVolumes ), il valore di ChangedChannel è (DWORD)(-1).

[in] EventContext

Valore del contesto dell'evento. Si tratta dello stesso valore passato al chiamante IChannelAudioVolume::SetChannelVolume o IChannelAudioVolume::SetAllVolumes nella chiamata che ha avviato la modifica nel livello del volume del canale. Per altre informazioni, vedere la sezione Osservazioni.

Valore restituito

Se il metodo ha esito positivo, viene restituito S_OK. Se ha esito negativo, viene restituito un codice di errore.

Commenti

La gestione sessione chiama questo metodo ogni volta che una chiamata al metodo IChannelAudioVolume::SetChannelVolume o IChannelAudioVolume::SetAllVolumes aggiorna correttamente il livello di volume di uno o più canali nella sottomix sessione. Si noti che la chiamata OnChannelVolumeChanged si verifica indipendentemente dal fatto che il nuovo livello di volume del canale o i livelli differiscano in valore rispetto al livello o ai livelli precedenti del volume del canale.

Il parametro EventContext fornisce un mezzo per un client per distinguere tra una modifica del volume del canale avviata e quella avviata da un altro client. Quando si chiama il metodo IChannelAudioVolume::SetChannelVolume o IChannelAudioVolume::SetAllVolumes, un client passa un valore di parametro EventContext che la relativa implementazione del metodo OnChannelVolumeChanged può riconoscere.

Per un esempio di codice che implementa i metodi nell'interfaccia IAudioSessionEvents , vedere Eventi sessione audio.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione audiopolicy.h

Vedi anche

Interfaccia IAudioSessionEvents

IChannelAudioVolume::SetAllVolumes

IChannelAudioVolume::SetChannelVolume