表示元数据的空间音频呈现流的激活参数,扩展 SpatialAudioObjectRenderStreamForMetadataActivationParams (spatialaudiometadata.h) ,并能够指定流选项。
语法
typedef struct SpatialAudioObjectRenderStreamForMetadataActivationParams2 {
  const WAVEFORMATEX                    *ObjectFormat;
  AudioObjectType                       StaticObjectTypeMask;
  UINT32                                MinDynamicObjectCount;
  UINT32                                MaxDynamicObjectCount;
  AUDIO_STREAM_CATEGORY                 Category;
  HANDLE                                EventHandle;
  GUID                                  MetadataFormatId;
  UINT32                                MaxMetadataItemCount;
  const PROPVARIANT                     *MetadataActivationParams;
  ISpatialAudioObjectRenderStreamNotify *NotifyObject;
  SPATIAL_AUDIO_STREAM_OPTIONS          Options;
} SpatialAudioObjectRenderStreamForMetadataActivationParams2;
成员
ObjectFormat
单个空间音频对象的格式描述符。 流使用的所有对象必须具有相同的格式,并且格式的类型必须为 WAVEFORMATEX 或 WAVEFORMATEXTENSIBLE。
StaticObjectTypeMask
AudioObjectType 值的按位组合,指示激活的流将允许的静态空间音频通道集。
MinDynamicObjectCount
并发动态对象的最小数量。 如果无法同时激活此数量的动态音频对象, ISpatialAudioClient::ActivateSpatialAudioStream 将失败并 SPTLAUDCLNT_E_NO_MORE_OBJECTS此错误。
MaxDynamicObjectCount
可以使用 ISpatialAudioObjectRenderStream 激活的最大并发动态对象数。
Category
音频流的类别及其空间音频对象。
EventHandle
将向客户端发出信号以提供更多音频数据的事件。 此句柄将在内部复制,然后再使用它。
MetadataFormatId
当前活动空间呈现引擎的元数据格式的标识符。
MaxMetadataItemCount
每个帧的最大元数据项数。
MetadataActivationParams
其他激活参数。
NotifyObject
为空间音频客户端提供通知以响应 ISpatialAudioObjectRenderStream 状态更改的 对象。 此对象用于通知客户端可同时激活的动态空间音频对象的数量即将更改。
Options
SPATIAL_AUDIO_STREAM_OPTIONS emumeration 的成员,指定激活的音频流的选项。
注解
以下示例演示如何使用流选项激活元数据流。
void CreateSpatialAudioObjectRenderStreamForMetadata(
    _In_ ISpatialAudioClient2* spatialAudioClient,
    _In_ WAVEFORMATEX const* objectFormat,
    AudioObjectType staticObjectTypeMask,
    UINT32 minDynamicObjectCount,
    UINT32 maxDynamicObjectCount,
    AUDIO_STREAM_CATEGORY streamCategory,
    _In_ HANDLE eventHandle,
    REFGUID metadataFormatId,
    UINT32 maxMetadataItemCount,
    _In_opt_ PROPVARIANT const* metadataActivationParams,
    _In_opt_ ISpatialAudioObjectRenderStreamNotify* notifyObject,
    bool enableOffload,
    _COM_Outptr_ ISpatialAudioObjectRenderStreamForMetadata** stream)
{
    SpatialAudioObjectRenderStreamForMetadataActivationParams2 streamActivationParams =
    {
        objectFormat,
        staticObjectTypeMask,
        minDynamicObjectCount,
        maxDynamicObjectCount,
        streamCategory,
        eventHandle,
        metadataFormatId,
        maxMetadataItemCount,
        metadataActivationParams,
        notifyObject,
        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 | 
| 标头 | spatialaudiometadata.h |