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