Share via


Estrutura SpatialAudioHrtfActivationParams2 (spatialaudiohrtf.h)

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

Sintaxe

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;

Membros

ObjectFormat

Descritor de formato para objetos de áudio espaciais associados ao fluxo. Todos os objetos devem ter o mesmo formato e devem 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, nenhum objeto de áudio dinâmico será ativado.

MaxDynamicObjectCount

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

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.

NotifyObject

O objeto que fornece notificações para clientes de áudio espacial responderem a alterações no estado de um ISpatialAudioRenderStreamForHrtf. 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.

DistanceDecay

Valor padrão opcional para o modelo de decaimento usado para objetos ISpatialAudioObjectForHrtf associados ao fluxo. nullptr se não for utilizado.

Directivity

Valor padrão opcional para o modelo de directividade de áudio espacial usado para objetos ISpatialAudioObjectForHrtf associados ao fluxo. nullptr se não for utilizado.

Environment

Valor padrão opcional para o tipo de ambiente que é simulado quando o áudio é processado para objetos ISpatialAudioObjectForHrtf associados ao fluxo. nullptr se não for utilizado.

Orientation

Valor padrão opcional para a orientação dos objetos ISpatialAudioObjectForHrtf associados ao fluxo. nullptr se não for utilizado.

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 elimina a ativação de um fluxo de renderização de áudio espacial para HRTF com opções de fluxo.

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

Requisitos

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