AUDIO_CURVE_TYPE 열거형(ksmedia.h)

AUDIO_CURVE_TYPE 열거형은 볼륨 수준을 설정하기 위해 적용할 곡선 알고리즘을 지정하는 상수를 정의합니다.

Syntax

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