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

与流关联的空间音频对象的格式描述符。 所有对象必须具有相同的格式,并且类型必须为 WAVEFORMATEXWAVEFORMATEXTENSIBLE

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 emumeration 的成员,指定激活的音频流的选项。

注解

以下示例演示了使用流选项激活 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