Lautstärkeregler
Clients, die Datenströme im freigegebenen Modus verwalten, verwenden in der Regel die Schnittstellen ISimpleAudioVolume und IAudioSessionEvents in WASAPI , um die Streamvolumeebenen zu steuern und zu überwachen. Über die Methoden in der ISimpleAudioVolume-Schnittstelle kann der Client die Lautstärkepegel der Audiositzungen abrufen und festlegen, zu denen die Streams im freigegebenen Modus gehören. Wenn Sndvol oder eine andere Anwendung die Sitzungsvolumeebene ändert, kann der Client über die IAudioSessionEvents-Schnittstelle eine Benachrichtigung über die Änderung erhalten.
Clients, die Datenströme im exklusiven Modus verwalten, verwenden in der Regel die Schnittstellen IAudioEndpointVolume und IAudioEndpointVolumeCallback in der EndpointVolume-API , um die Streamvolumeebenen zu steuern und zu überwachen. Über die Methoden in der IAudioEndpointVolume-Schnittstelle kann der Client die Lautstärke eines Audioendpunktgeräts abrufen und festlegen. Wenn Sndvol oder eine andere Anwendung die Volumeebene des Endpunktgeräts ändert, kann der Client über die IAudioEndpointVolumeCallback-Schnittstelle eine Benachrichtigung über die Änderung erhalten.
Wie in Audiositzungen erläutert, ist Sndvol das Programm zur Steuerung der Systemlautstärke. Es zeigt Lautstärkesteuerelemente für die Audiorenderingendpunktgeräte im System an. (Derzeit werden die Lautstärkeregler für Audioaufnahmeendpunkte nicht angezeigt.) Klicken Sie zum Anzeigen der Lautstärkeregler für ein bestimmtes Gerät in der Menüleiste auf Gerät , und wählen Sie einen Gerätenamen aus der Liste der verfügbaren Geräte aus.
Das Sndvol-Fenster trennt die Lautstärkesteuerelemente für ein Gerät in zwei Gruppen. Das Gruppenfeld auf der linken Seite des Fensters hat die Bezeichnung Gerät. Das Feld Gerät enthält eine einzelne Lautstärkeregelung, die über die IAudioEndpointVolume-Schnittstelle gesteuert wird. Änderungen, die der Benutzer an dieser Lautstärkeregelung vornimmt, können über die IAudioEndpointVolumeCallback-Schnittstelle überwacht werden.
Das Gruppenfeld auf der rechten Seite des Sndvol-Fensters hat die Bezeichnung Anwendungen. Das Feld Anwendungen enthält die Volumesteuerelemente für die Anwendungen, die das Gerät derzeit gemeinsam nutzen. Bei Anwendungen, die das Gerät im freigegebenen Modus verwenden, stellen die Lautstärkeregler die Lautstärkeebenen dar, die von der ISimpleAudioVolume-Schnittstelle gesteuert werden. Änderungen, die der Benutzer an diesen Lautstärkereglern vornimmt, können über die IAudioSessionEvents-Schnittstelle überwacht werden.
Obwohl eine Anwendung im freigegebenen Modus ihre IAudioSessionEvents-Schnittstelle verwenden kann, um Änderungen zu überwachen, die der Benutzer an der Lautstärkesteuerung der Anwendung im Feld Anwendungen im Sndvol-Fenster vornimmt, kann die Anwendung keine Änderungen an den Lautstärkesteuerungen anderer, nicht verwandter Anwendungen überwachen. Auf ähnliche Weise kann eine Anwendung die Lautstärke ihrer Audiositzungen über die ISimpleAudioVolume-Schnittstelle ändern, aber sie kann nicht die Lautstärkepegel von Sitzungen ändern, die zu anderen, nicht verwandten Anwendungen gehören.
Zwei oder mehr verwandte Anwendungen (oder Instanzen derselben Anwendung) können jedoch die gleiche Lautstärkeregelung im Feld Anwendungen im Sndvol-Fenster gemeinsam nutzen, indem sie entweder ihre Audiodatenströme derselben prozessübergreifenden Sitzung zuweisen oder ihre jeweiligen Sitzungen demselben Gruppierungsparameter zuordnen. Weitere Informationen finden Sie unter Audiositzungen und Gruppierungsparameter.
WASAPI bietet zwei zusätzliche Schnittstellen, IChannelAudioVolume und IAudioStreamVolume, um die Volumeebenen von Streams im freigegebenen Modus zu steuern. Diese Schnittstellen werden hauptsächlich von spezialisierten Clients verwendet, die die Steuerung der Volumeebenen einzelner Kanäle in einer Sitzung oder einzelner Streams in einer Sitzung erfordern.
Die DeviceTopology-API ermöglicht Clients den Zugriff auf die Volumesteuerelemente in den Topologien von Audioadaptern. Clients, die Datenströme im exklusiven Modus verwalten, verwenden jedoch in der Regel die EndpointVolume-API anstelle der DeviceTopology-API, um die Streamvolumeebenen zu steuern. Die EndpointVolume-API vereinfacht die Steuerung des Volumes eines Endpunktgeräts auf zwei Arten. Wenn ein Endpunktgerät eine Hardwarevolumesteuerung implementiert, erfordert die DeviceTopology-API, dass der Client die Gerätetopologie bei der Suche nach der Hardwaresteuerung durchläuft. Im Gegensatz dazu findet die EndpointVolume-API automatisch die Hardwarevolumesteuerung für den Client. Zweitens: Wenn das Endpunktgerät keine Hardwarevolumesteuerung implementiert, muss ein DeviceTopology-Client eine Lautstärkeregelung in der Software implementieren. Im Gegensatz dazu ersetzt die EndpointVolume-API automatisch eine Softwarevolumesteuerung durch die fehlende Hardwaresteuerung.
In den folgenden Abschnitten wird die Lautstärkesteuerung für Audiositzungen und für Audioendpunktgeräte beschrieben:
- Steuerelemente für Sitzungsvolume
- Steuerelemente für Endpunktvolume
- EndpointVolume-API
- Lautstärkeregler für Audioverknippung
- Peak Meter
Zugehörige Themen