Condividi tramite


Struttura SpatialAudioObjectRenderStreamForMetadataActivationParams2 (spatialaudiometadata.h)

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

Sintassi

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;

Members

ObjectFormat

Descrittore di formato per un singolo oggetto audio spaziale. Tutti gli oggetti usati dal flusso devono avere lo stesso formato e il formato deve 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 simultaneamente, ISpatialAudioClient::ActivateSpatialAudioStream avrà esito negativo con questo errore SPTLAUDCLNT_E_NO_MORE_OBJECTS.

MaxDynamicObjectCount

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

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.

MetadataFormatId

Identificatore del formato dei metadati per il motore di rendering spaziale attualmente attivo.

MaxMetadataItemCount

Numero massimo di elementi di metadati per frame.

MetadataActivationParams

Parametri di attivazione aggiuntivi.

NotifyObject

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

Options

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

Commenti

Nell'esempio seguente viene illustrato come attivare un flusso di metadati con opzioni di flusso.

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

Requisiti

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