ISpAudio::GetVolumeLevel

Microsoft Speech SDK

The Microsoft.com Speech website Microsoft Speech SDK SAPI 5.1

ISpAudio::GetVolumeLevel

ISpAudio::GetVolumeLevel passes back the current volume level.

The volume level is on a linear scale from zero to 10000.

HRESULT GetVolumeLevel(
   ULONG   *pLevel
);

Parameters

pLevel
[out] Pointer to the returned volume level.

Return values

Value Description
S_OK Function completed successfully.
SPERR_UNINITIALIZED Audio interface is not initialized.
SPERR_DEVICE_NOT_SUPPORTED The device is not valid or does not support volumes.
E_POINTER pLevel is invalid or bad.
FAILED(hr) Appropriate error message.

Remarks

For input devices with a boost control for the microphone, SAPI will split the volume range into two to allow automated use of the boost. The boost will be off from zero to 4999 and on from 5000 to 10,000. In each range, the full volume range of the device will be used independently. This can lead to discontinuity in the input energy level for a constant volume sound source. On some sound cards, the boost is applied to the input volume, but on others, the boost is applied to the playback volume resulting in the two ranges behaving identically because the input level is unaffected.

Microphone wizards determining the best volume input level should take into consideration the potential discontinuity and ensure that the algorithm used to adjust the input volume level can handle the various possible forms of discontinuity at 5,000

For devices without a boost, there is no discontinuity at 5000.