다음을 통해 공유


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