Partager via


SpatialAudioObjectRenderStreamForMetadataActivationParams2, structure (spatialaudiometadata.h)

Représente les paramètres d’activation d’un flux de rendu audio spatial pour les métadonnées, en étendant SpatialAudioObjectRenderStreamForMetadataActivationParams (spatialaudiometadata.h) avec la possibilité de spécifier des options de flux.

Syntaxe

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;

Membres

ObjectFormat

Descripteur de format pour un seul objet audio spatial. Tous les objets utilisés par le flux doivent avoir le même format et le format doit être de type WAVEFORMATEX ou WAVEFORMATEXTENSIBLE.

StaticObjectTypeMask

Combinaison de bits de valeurs AudioObjectType indiquant l’ensemble de canaux audio spatiaux statiques autorisés par le flux activé.

MinDynamicObjectCount

Nombre minimal d’objets dynamiques simultanés. Si ce nombre d’objets audio dynamiques ne peut pas être activé simultanément, ISpatialAudioClient ::ActivateSpatialAudioStream échoue avec cette erreur SPTLAUDCLNT_E_NO_MORE_OBJECTS.

MaxDynamicObjectCount

Nombre maximal d’objets dynamiques simultanés qui peuvent être activés avec ISpatialAudioObjectRenderStream.

Category

Catégorie du flux audio et de ses objets audio spatiaux.

EventHandle

Événement qui signale au client qu’il fournit davantage de données audio. Ce handle sera dupliqué en interne avant d’être utilisé.

MetadataFormatId

Identificateur du format de métadonnées pour le moteur de rendu spatial actuellement actif.

MaxMetadataItemCount

Nombre maximal d’éléments de métadonnées par image.

MetadataActivationParams

Paramètres d’activation supplémentaires.

NotifyObject

Objet qui fournit des notifications permettant aux clients audio spatiaux de répondre aux modifications de l’état d’un ISpatialAudioObjectRenderStream. Cet objet est utilisé pour informer les clients que le nombre d’objets audio spatiaux dynamiques pouvant être activés simultanément est sur le point de changer.

Options

Un membre du SPATIAL_AUDIO_STREAM_OPTIONS emumeration, en spécifiant des options pour le flux audio activé.

Remarques

L’exemple suivant montre comment activer un flux de métadonnées avec des options de flux.

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)));
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Build 22000
En-tête spatialaudiometadata.h