다음을 통해 공유


SpatialAudioHrtfActivationParams2 구조체(spatialaudiohrtf.h)

공간 오디오 렌더링 스트림에 대한 활성화 매개 변수를 나타내며 스트림 옵션을 지정할 수 있는 기능으로 SpatialAudioHrtfActivationParams(spatialaudiohrtf.h) 를 확장합니다.

구문

typedef struct SpatialAudioHrtfActivationParams2 {
  const WAVEFORMATEX                    *ObjectFormat;
  AudioObjectType                       StaticObjectTypeMask;
  UINT32                                MinDynamicObjectCount;
  UINT32                                MaxDynamicObjectCount;
  AUDIO_STREAM_CATEGORY                 Category;
  HANDLE                                EventHandle;
  ISpatialAudioObjectRenderStreamNotify *NotifyObject;
  SpatialAudioHrtfDistanceDecay         *DistanceDecay;
  SpatialAudioHrtfDirectivityUnion      *Directivity;
  SpatialAudioHrtfEnvironmentType       *Environment;
  SpatialAudioHrtfOrientation           *Orientation;
  SPATIAL_AUDIO_STREAM_OPTIONS          Options;
} SpatialAudioHrtfActivationParams2;

멤버

ObjectFormat

스트림과 연결된 공간 오디오 개체의 서식 설명자입니다. 모든 개체의 형식은 동일해야 하며 WAVEFORMATEX 또는 WAVEFORMATEXTENSIBLE 형식이어야 합니다.

StaticObjectTypeMask

활성화된 스트림에서 허용할 정적 공간 오디오 채널 집합을 나타내는 AudioObjectType 값의 비트 조합입니다.

MinDynamicObjectCount

동시 동적 개체의 최소 수입니다. 이 수의 동적 오디오 개체를 동시에 활성화할 수 없는 경우 동적 오디오 개체가 활성화되지 않습니다.

MaxDynamicObjectCount

ISpatialAudioRenderStreamForHrtf로 활성화할 수 있는 최대 동시 동적 개체 수입니다.

Category

오디오 스트림 및 해당 공간 오디오 개체의 범주입니다.

EventHandle

클라이언트가 더 많은 오디오 데이터를 제공하도록 신호를 보낼 이벤트입니다. 이 핸들은 사용하기 전에 내부적으로 중복됩니다.

NotifyObject

공간 오디오 클라이언트가 ISpatialAudioRenderStreamForHrtf의 상태 변경에 응답하도록 알림을 제공하는 개체입니다. 이 개체는 동시에 활성화할 수 있는 동적 공간 오디오 개체의 수가 변경될 것임을 클라이언트에 알리는 데 사용됩니다.

DistanceDecay

스트림과 연결된 ISpatialAudioObjectForHrtf 개체에 사용되는 감쇠 모델의 선택적 기본값입니다. 사용하지 않는 경우 nullptr입니다.

Directivity

스트림과 연결된 ISpatialAudioObjectForHrtf 개체에 사용되는 공간 오디오 직접성 모델의 선택적 기본값입니다. 사용하지 않는 경우 nullptr입니다.

Environment

스트림과 연결된 ISpatialAudioObjectForHrtf 개체에 대해 오디오가 처리될 때 시뮬레이션되는 환경 형식에 대한 선택적 기본값입니다. 사용하지 않는 경우 nullptr입니다.

Orientation

스트림과 연결된 ISpatialAudioObjectForHrtf 개체의 방향에 대한 선택적 기본값입니다. 사용하지 않는 경우 nullptr입니다.

Options

활성화된 오디오 스트림에 대한 옵션을 지정하는 SPATIAL_AUDIO_STREAM_OPTIONS 열거형의 멤버입니다.

설명

다음 예제에서는 스트림 옵션을 사용하여 HRTF에 대한 공간 오디오 렌더링 스트림 활성화를 시연합니다.

void CreateSpatialAudioObjectRenderStreamForHrtf(
    _In_ ISpatialAudioClient2* spatialAudioClient,
    _In_ WAVEFORMATEX const* objectFormat,
    AudioObjectType staticObjectTypeMask,
    UINT32 minDynamicObjectCount,
    UINT32 maxDynamicObjectCount,
    AUDIO_STREAM_CATEGORY streamCategory,
    _In_ HANDLE eventHandle,
    _In_opt_ ISpatialAudioObjectRenderStreamNotify* notifyObject,
    _In_opt_ SpatialAudioHrtfDistanceDecay* distanceDecay,
    _In_opt_ SpatialAudioHrtfDirectivityUnion* directivity,
    _In_opt_ SpatialAudioHrtfEnvironmentType* environment,
    _In_opt_ SpatialAudioHrtfOrientation* orientation,
    bool enableOffload,
    _COM_Outptr_ ISpatialAudioObjectRenderStreamForHrtf** stream)
{
    SpatialAudioHrtfActivationParams2 streamActivationParams =
    {
        objectFormat,
        staticObjectTypeMask,
        minDynamicObjectCount,
        maxDynamicObjectCount,
        streamCategory,
        eventHandle,
        notifyObject,
        distanceDecay,
        directivity,
        environment,
        orientation,
        enableOffload ? SPATIAL_AUDIO_STREAM_OPTIONS_OFFLOAD : SPATIAL_AUDIO_STREAM_OPTIONS_NONE
    };

    PROPVARIANT activateParamsPropVariant = {};
    activateParamsPropVariant.vt = VT_BLOB;
    activateParamsPropVariant.blob.cbSize = sizeof(streamActivationParams);
    activateParamsPropVariant.blob.pBlobData = reinterpret_cast<BYTE*>(&streamActivationParams);

    *stream = nullptr;
    THROW_IF_FAILED(spatialAudioClient->ActivateSpatialAudioStream(&activateParamsPropVariant, IID_PPV_ARGS(stream)));
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Build 22000
머리글 spatialaudiohrtf.h