Поделиться через


Структура 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 22000
Верхняя часть spatialaudiohrtf.h