IAudioStreamVolume interface

The IAudioStreamVolume interface enables a client to control and monitor the volume levels for all of the channels in an audio stream. The client obtains a reference to the IAudioStreamVolume interface on a stream object by calling the IAudioClient::GetService method with parameter riid set to REFIID IID_IAudioStreamVolume.

The effective volume level of any channel in the session submix, as heard at the speakers, is the product of the following four volume-level factors:

  • The per-channel volume levels of the streams in the session, which clients can control through the methods in the IAudioStreamVolume interface.
  • The per-channel volume level of the session, which clients can control through the methods in the IChannelAudioVolume interface.
  • The master volume level of the session, which clients can control through the methods in the ISimpleAudioVolume interface.
  • The policy-based volume level of the session, which the system dynamically assigns to the session as the global mix changes.
Each of the four volume-level factors in the preceding list is a value in the range 0.0 to 1.0, where 0.0 indicates silence and 1.0 indicates full volume (no attenuation). The effective volume level is also a value in the range 0.0 to 1.0.

When releasing an IAudioStreamVolume interface instance, the client must call the interface's Release method from the same thread as the call to IAudioClient::GetService that created the object.

The IAudioStreamVolume interface controls the channel volumes in a shared-mode audio stream. This interface does not work with exclusive-mode streams. For information about volume controls for exclusive-mode streams, see EndpointVolume API.

Inheritance

The IAudioStreamVolume interface inherits from the IUnknown interface. IAudioStreamVolume also has these types of members:

Methods

The IAudioStreamVolume interface has these methods.

Method Description
IAudioStreamVolume::GetAllVolumes The GetAllVolumes method retrieves the volume levels for all the channels in the audio stream.
IAudioStreamVolume::GetChannelCount The GetChannelCount method retrieves the number of channels in the audio stream.
IAudioStreamVolume::GetChannelVolume The GetChannelVolume method retrieves the volume level for the specified channel in the audio stream.
IAudioStreamVolume::SetAllVolumes The SetAllVolumes method sets the individual volume levels for all the channels in the audio stream.
IAudioStreamVolume::SetChannelVolume The SetChannelVolume method sets the volume level for the specified channel in the audio stream.

Requirements

   
Minimum supported client Windows Vista [desktop apps | UWP apps]
Minimum supported server Windows Server 2008 [desktop apps | UWP apps]
Target Platform Windows
Header audioclient.h

See also

Core Audio Interfaces

IAudioClient::GetService

IChannelAudioVolume Interface

ISimpleAudioVolume Interface

WASAPI