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 |