Share via


IChannelAudioVolume-Schnittstelle (audioclient.h)

Mit der IChannelAudioVolume-Schnittstelle kann ein Client die Lautstärkepegel für alle Kanäle in der Audiositzung steuern und überwachen, zu der der Stream gehört. Dies ist die Sitzung, der der Client den Stream während des Aufrufs der IAudioClient::Initialize-Methode zugewiesen hat. Der Client ruft einen Verweis auf die IChannelAudioVolume-Schnittstelle für ein Streamobjekt ab, indem er die IAudioClient::GetService-Methode aufruft, wobei der Parameter riid auf REFIID IID_IChannelAudioVolume festgelegt ist.

Die effektive Lautstärke eines beliebigen Kanals im Sitzungs-Submix, wie er an den Lautsprechern zu hören ist, ist das Produkt der folgenden vier Faktoren auf Lautstärkeebene:

  • Die Kanalvolumeebenen der Streams in der Sitzung, die Von Clients über die Methoden in der IAudioStreamVolume-Schnittstelle gesteuert werden können.
  • Die Volumeebene der Sitzung pro Kanal, die Clients über die Methoden in der IChannelAudioVolume-Schnittstelle steuern können.
  • Die master Volumeebene der Sitzung, die Clients über die Methoden in der ISimpleAudioVolume-Schnittstelle steuern können.
  • Die richtlinienbasierte Volumeebene der Sitzung, die das System der Sitzung dynamisch zuweist, wenn sich der globale Mix ändert.
Jeder der vier Faktoren auf Volumeebene in der vorherigen Liste ist ein Wert im Bereich von 0,0 bis 1,0, wobei 0,0 die Stille und 1,0 die volle Lautstärke (keine Dämpfung) angibt. Die effektive Volumeebene ist ebenfalls ein Wert im Bereich von 0,0 bis 1,0.

Typische Audioanwendungen ändern die Lautstärkepegel von Sitzungen nicht. Stattdessen verlassen sie sich darauf, dass Benutzer diese Lautstärken über das Sndvol-Programm festlegen. Sndvol ändert nur die master Lautstärkestufen von Sitzungen. Standardmäßig legt der Sitzungs-Manager die Volumestufen pro Kanal bei der ersten Aktivierung einer Sitzung auf 1,0 fest. Nachfolgende Volumeänderungen pro Kanal durch Clients sind bei Computerneustarts persistent.

Beim Freigeben einer IChannelAudioVolume-Schnittstelle instance muss der Client die Release-Methode der Schnittstelle aus demselben Thread aufrufen wie der Aufruf von IAudioClient::GetService, der das Objekt erstellt hat.

Die IChannelAudioVolume-Schnittstelle steuert die Kanalvolumes in einer Audiositzung. Eine Audiositzung ist eine Sammlung von Streams im freigegebenen Modus. Diese Schnittstelle funktioniert nicht mit Datenströmen im exklusiven Modus. Informationen zu Volumesteuerelementen für Datenströme im exklusiven Modus finden Sie unter EndpointVolume-API.

Vererbung

Die IChannelAudioVolume-Schnittstelle erbt von der IUnknown-Schnittstelle . IChannelAudioVolume verfügt auch über folgende Arten von Membern:

Methoden

Die IChannelAudioVolume-Schnittstelle verfügt über diese Methoden.

 
IChannelAudioVolume::GetAllVolumes

Die GetAllVolumes-Methode ruft die Lautstärkepegel für alle Kanäle in der Audiositzung ab.
IChannelAudioVolume::GetChannelCount

Die GetChannelCount-Methode ruft die Anzahl der Kanäle im Streamformat für die Audiositzung ab.
IChannelAudioVolume::GetChannelVolume

Die GetChannelVolume-Methode ruft die Lautstärkeebene für den angegebenen Kanal in der Audiositzung ab.
IChannelAudioVolume::SetAllVolumes

Die SetAllVolumes-Methode legt die einzelnen Lautstärkestufen für alle Kanäle in der Audiositzung fest.
IChannelAudioVolume::SetChannelVolume

Die SetChannelVolume-Methode legt die Lautstärke für den angegebenen Kanal in der Audiositzung fest.

Anforderungen

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

Weitere Informationen

Kern-Audioschnittstellen

IAudioClient::GetService

IAudioClient::Initialize

IAudioStreamVolume-Schnittstelle

ISimpleAudioVolume-Schnittstelle

WASAPI