Condividi tramite


Struttura SpatialAudioHrtfActivationParams2 (spatialaudiohrtf.h)

Rappresenta i parametri di attivazione per un flusso di rendering audio spaziale, estendendo SpatialAudioHrtfActivationParams (spatialaudiohrtf.h) con la possibilità di specificare le opzioni di flusso.

Sintassi

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;

Members

ObjectFormat

Descrittore di formato per gli oggetti audio spaziali associati al flusso. Tutti gli oggetti devono avere lo stesso formato e devono essere di tipo WAVEFORMATEX o WAVEFORMATEXTENSIBLE.

StaticObjectTypeMask

Combinazione bit per bit dei valori AudioObjectType che indicano il set di canali audio spaziali statici che saranno consentiti dal flusso attivato.

MinDynamicObjectCount

Numero minimo di oggetti dinamici simultanei. Se questo numero di oggetti audio dinamici non può essere attivato contemporaneamente, non verranno attivati oggetti audio dinamici.

MaxDynamicObjectCount

Numero massimo di oggetti dinamici simultanei che possono essere attivati con ISpatialAudioRenderStreamForHrtf.

Category

Categoria del flusso audio e dei relativi oggetti audio spaziali.

EventHandle

Evento che segnalerà il client per fornire altri dati audio. Questo handle verrà duplicato internamente prima di usarlo.

NotifyObject

Oggetto che fornisce notifiche per i client audio spaziali per rispondere alle modifiche nello stato di un ISpatialAudioRenderStreamForHrtf. Questo oggetto viene usato per notificare ai client che il numero di oggetti audio spaziali dinamici che possono essere attivati simultaneamente sta per cambiare.

DistanceDecay

Valore predefinito facoltativo per il modello di decadimento usato per gli oggetti ISpatialAudioObjectForHrtf associati al flusso. Nullptr se inutilizzato.

Directivity

Valore predefinito facoltativo per il modello di directività audio spaziale usato per gli oggetti ISpatialAudioObjectForHrtf associati al flusso. Nullptr se inutilizzato.

Environment

Valore predefinito facoltativo per il tipo di ambiente simulato quando l'audio viene elaborato per gli oggetti ISpatialAudioObjectForHrtf associati al flusso. Nullptr se inutilizzato.

Orientation

Valore predefinito facoltativo per l'orientamento degli oggetti ISpatialAudioObjectForHrtf associati al flusso. Nullptr se inutilizzato.

Options

Membro dell'emulazione SPATIAL_AUDIO_STREAM_OPTIONS , specificando le opzioni per il flusso audio attivato.

Commenti

L'esempio seguente mostra l'attivazione di un flusso di rendering audio spaziale per HRTF con opzioni di flusso.

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

Requisiti

Requisito Valore
Client minimo supportato Windows Build 22000
Intestazione spatialaudiohrtf.h