次の方法で共有


SpatialAudioObjectRenderStreamForMetadataActivationParams2 構造体 (spatialaudiometadata.h)

メタデータの空間オーディオ レンダリング ストリームのアクティブ化パラメーターを表し、 SpatialAudioObjectRenderStreamForMetadataActivationParams (spatialaudiometadata.h) をストリーム オプションを指定する機能を拡張します。

構文

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;

メンバー

ObjectFormat

1 つの空間オーディオ オブジェクトの書式記述子。 ストリームで使用されるすべてのオブジェクトは同じ形式である必要があり、形式は WAVEFORMATEX または WAVEFORMATEXTENSIBLE 型である必要があります。

StaticObjectTypeMask

アクティブ化されたストリームで許可される静的空間オーディオ チャネルのセットを示す AudioObjectType 値のビットごとの組み合わせ。

MinDynamicObjectCount

同時実行動的オブジェクトの最小数。 この数の動的オーディオ オブジェクトを同時にアクティブ化できない場合、 ISpatialAudioClient::ActivateSpatialAudioStream は、このエラー SPTLAUDCLNT_E_NO_MORE_OBJECTSで失敗します。

MaxDynamicObjectCount

ISpatialAudioObjectRenderStream でアクティブ化できる同時動的オブジェクトの最大数。

Category

オーディオ ストリームとその空間オーディオ オブジェクトのカテゴリ。

EventHandle

より多くのオーディオ データを提供するようにクライアントに通知するイベント。 このハンドルは、使用される前に内部的に複製されます。

MetadataFormatId

現在アクティブな空間レンダリング エンジンのメタデータ形式の識別子。

MaxMetadataItemCount

フレームあたりのメタデータ項目の最大数。

MetadataActivationParams

追加のアクティブ化パラメーター。

NotifyObject

空間オーディオ クライアントが ISpatialAudioObjectRenderStream の状態の変化に応答するための通知を提供する オブジェクト。 このオブジェクトは、同時にアクティブ化できる動的空間オーディオ オブジェクトの数が変更されようとしていることをクライアントに通知するために使用されます。

Options

アクティブ化されたオーディオ ストリームのオプションを指定する、 SPATIAL_AUDIO_STREAM_OPTIONS の emumeration のメンバー。

注釈

次の例は、ストリーム オプションを使用してメタデータ ストリームをアクティブ化する方法を示しています。

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

要件

要件
サポートされている最小のクライアント Windows ビルド 22000
Header spatialaudiometadata.h