AUDIO_CURVE_TYPE枚举 (ksmedia.h)

AUDIO_CURVE_TYPE枚举定义了常量,这些常量指定要应用于设置音量的曲线算法。

语法

typedef enum {
  AUDIO_CURVE_TYPE_NONE,
  AUDIO_CURVE_TYPE_WINDOWS_FADE
} AUDIO_CURVE_TYPE;

常量

 
AUDIO_CURVE_TYPE_NONE
指定不应用任何曲线算法。 指定此曲线时,指定的曲线的持续时间必须等于 0。
AUDIO_CURVE_TYPE_WINDOWS_FADE
指定应用于卷设置的算法必须遵循 “备注 ”部分中关系图中显示的曲线。

注解

以下伪代码片段显示了应用于卷设置以达到目标卷级别的算法的逻辑。

// POWER IN AMPLITUDE: 1.75

// Fade In:
// Curve begins at 0 when nFrame = 0
// When nFrame gets to (nFrames - 1), curve = 1
//
// curve = pow(nFrame / (nFrames - 1), exponent)

float fFrameCount = nFrames - 1.0f;
for (UINT32 nFrame = 0; nFrame < nFrames; nFrame++) {
    float curve = powf(nFrame / fFrameCount, 1.75f);
    for (UINT32 nChannel = 0; nChannel < pWfx->nChannels; nChannel++) {
            pFloat[nFrame * pWfx->nChannels + nChannel] *= curve;
    }
}

// Fade Out:
// curve begins at 1 when nFrame = 0
// When nFrame gets to (nFrames - 1), curve = 0
//
// curve = pow(1 - (nFrame / (nFrames - 1)), exponent)

float fFrameCount = nFrames - 1.0f;
for (UINT32 nFrame = 0; nFrame < nFrames; nFrame++) {
    float curve = powf(1.0f - (nFrame / fFrameCount), 1.75f);
    for (UINT32 nChannel = 0; nChannel < pWfx->nChannels; nChannel++) {
            pFloat[nFrame * pWfx->nChannels + nChannel] *= curve;
    }
}

下图显示了用于设置卷级别的上述伪代码的图形表示形式。

音量级别曲线的图形表示形式。

要求

要求
最低受支持的客户端 Windows 8
标头 ksmedia.h

另请参阅

KSAUDIOENGINE_VOLUMELEVEL

KSPROPERTY_AUDIOENGINE_VOLUMELEVEL