IMFAudioStreamVolume interface (mfidl.h)

Controls the volume levels of individual audio channels.

The streaming audio renderer (SAR) exposes this interface as a service. To get a pointer to the interface, call IMFGetService::GetService with the service identifier MR_STREAM_VOLUME_SERVICE. You can call GetService directly on the SAR or call it on the Media Session.

Inheritance

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

Methods

The IMFAudioStreamVolume interface has these methods.

 
IMFAudioStreamVolume::GetAllVolumes

Retrieves the volume levels for all of the channels in the audio stream.
IMFAudioStreamVolume::GetChannelCount

Retrieves the number of channels in the audio stream.
IMFAudioStreamVolume::GetChannelVolume

Retrieves the volume level for a specified channel in the audio stream.
IMFAudioStreamVolume::SetAllVolumes

Sets the individual volume levels for all of the channels in the audio stream.
IMFAudioStreamVolume::SetChannelVolume

Sets the volume level for a specified channel in the audio stream.

Remarks

If your application does not require channel-level volume control, you can use the IMFSimpleAudioVolume interface to control the master volume level of the audio session.

Volume is expressed as an attenuation level, where 0.0 indicates silence and 1.0 indicates full volume (no attenuation). For each channel, the attenuation level is the product of:

  • The master volume level of the audio session.
  • The volume level of the channel.
For example, if the master volume is 0.8 and the channel volume is 0.5, the attenuation for that channel is 0.8 × 0.5 = 0.4. Volume levels can exceed 1.0 (positive gain), but the audio engine clips any audio samples that exceed zero decibels.

Use the following formula to convert the volume level to the decibel (dB) scale:

Attenuation (dB) = 20 * log10(Level)

For example, a volume level of 0.50 represents 6.02 dB of attenuation.

Requirements

Requirement Value
Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Target Platform Windows
Header mfidl.h

See also

Media Foundation Interfaces

Streaming Audio Renderer