IAudioSessionEvents::OnChannelVolumeChanged-Methode (audiopolicy.h)

Die OnChannelVolumeChanged-Methode benachrichtigt den Client, dass sich die Lautstärke eines Audiokanals im Sitzungsuntermix geändert hat.

Syntax

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

Parameter

[in] ChannelCount

Die Kanalanzahl. Dieser Parameter gibt die Anzahl der Audiokanäle im Sitzungs-Submix an.

[in] NewChannelVolumeArray

Zeiger auf ein Array von Volumeebenen. Jedes Element ist ein Wert vom Typ float , der die Volumeebene für einen bestimmten Kanal angibt. Jede Lautstärkeebene ist ein Wert im Bereich von 0,0 bis 1,0, wobei 0,0 für Stille und 1,0 für volle Lautstärke (keine Dämpfung) steht. Die Anzahl der Elemente im Array wird durch den ChannelCount-Parameter angegeben. Wenn ein Audiostream n Kanäle enthält, werden die Kanäle zwischen 0 und n bis 1 nummeriert. Das Arrayelement, dessen Index mit der Kanalnummer übereinstimmt, enthält die Volumeebene für diesen Kanal. Angenommen, das Array bleibt nur für die Dauer des Aufrufs gültig.

[in] ChangedChannel

Die Nummer des Kanals, dessen Lautstärke sich geändert hat. Verwenden Sie diesen Wert als Index im NewChannelVolumeArray-Array . Wenn der Sitzungs-Submix n Kanäle enthält, werden die Kanäle von 0 bis n– 1 nummeriert. Wenn sich möglicherweise mehrere Kanäle geändert haben (z. B. aufgrund eines Aufrufs der IChannelAudioVolume::SetAllVolumes-Methode ), ist der Wert von ChangedChannel (DWORD)(–1).

[in] EventContext

Der Ereigniskontextwert. Dies ist der gleiche Wert, den der Aufrufer an die IChannelAudioVolume::SetChannelVolume - oder IChannelAudioVolume::SetAllVolumes-Methode in dem Aufruf übergeben hat, der die Änderung der Volumeebene des Kanals initiiert hat. Weitere Informationen finden Sie in den Hinweisen.

Rückgabewert

Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Bei einem Fehler wird ein Fehlercode zurückgegeben.

Hinweise

Der Sitzungs-Manager ruft diese Methode jedes Mal auf, wenn ein Aufruf der IChannelAudioVolume::SetChannelVolume - oder IChannelAudioVolume::SetAllVolumes-Methode die Volumeebene eines oder mehrerer Kanäle im Sitzungsuntermix erfolgreich aktualisiert. Beachten Sie, dass der OnChannelVolumeChanged-Aufruf unabhängig davon erfolgt, ob sich die Lautstärkeebene des neuen Kanals von der vorherigen Kanalvolumeebene oder -ebene unterscheidet.

Der EventContext-Parameter stellt ein Mittel für einen Client bereit, um zwischen einer von diesem initiierten Kanalvolumeänderung und einer Änderung zu unterscheiden, die von einem anderen Client initiiert wurde. Beim Aufrufen der IChannelAudioVolume::SetChannelVolume - oder IChannelAudioVolume::SetAllVolumes-Methode übergibt ein Client einen EventContext-Parameterwert , den seine Implementierung der OnChannelVolumeChanged-Methode erkennen kann.

Ein Codebeispiel, das die Methoden in der IAudioSessionEvents-Schnittstelle implementiert, finden Sie unter Audiositzungsereignisse.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile audiopolicy.h

Weitere Informationen

IAudioSessionEvents-Schnittstelle

IChannelAudioVolume::SetAllVolumes

IChannelAudioVolume::SetChannelVolume