Compartilhar via


Estrutura SpatialAudioObjectRenderStreamForMetadataActivationParams2 (spatialaudiometadata.h)

Representa parâmetros de ativação para um fluxo de renderização de áudio espacial para metadados, estendendo SpatialAudioObjectRenderStreamForMetadataActivationParams (spatialaudiometadata.h) com a capacidade de especificar opções de fluxo.

Sintaxe

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;

Membros

ObjectFormat

Descritor de formato para um único objeto de áudio espacial. Todos os objetos usados pelo fluxo devem ter o mesmo formato e o formato deve ser do tipo WAVEFORMATEX ou WAVEFORMATEXTENSIBLE.

StaticObjectTypeMask

Uma combinação bit a bit de valores AudioObjectType indicando o conjunto de canais de áudio espaciais estáticos que serão permitidos pelo fluxo ativado.

MinDynamicObjectCount

O número mínimo de objetos dinâmicos simultâneos. Se esse número de objetos de áudio dinâmicos não puder ser ativado simultaneamente, ISpatialAudioClient::ActivateSpatialAudioStream falhará com esse erro SPTLAUDCLNT_E_NO_MORE_OBJECTS.

MaxDynamicObjectCount

O número máximo de objetos dinâmicos simultâneos que podem ser ativados com ISpatialAudioObjectRenderStream.

Category

A categoria do fluxo de áudio e seus objetos de áudio espaciais.

EventHandle

O evento que sinalizará o cliente para fornecer mais dados de áudio. Esse identificador será duplicado internamente antes de ser usado.

MetadataFormatId

O identificador do formato de metadados para o mecanismo de renderização espacial ativo no momento.

MaxMetadataItemCount

O número máximo de itens de metadados por quadro.

MetadataActivationParams

Parâmetros de ativação adicionais.

NotifyObject

O objeto que fornece notificações para clientes de áudio espacial responderem a alterações no estado de um ISpatialAudioObjectRenderStream. Esse objeto é usado para notificar os clientes de que o número de objetos de áudio espacial dinâmicos que podem ser ativados simultaneamente está prestes a ser alterado.

Options

Um membro da emumeração SPATIAL_AUDIO_STREAM_OPTIONS , especificando opções para o fluxo de áudio ativado.

Comentários

O exemplo a seguir mostra como ativar um fluxo de metadados com opções de fluxo.

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

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Build 22000
Cabeçalho spatialaudiometadata.h