SpatialAudioHrtfActivationParams2 構造体 (spatialaudiohrtf.h)

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

構文

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;

メンバー

ObjectFormat

ストリームに関連付けられた空間オーディオ オブジェクトの書式記述子。 すべてのオブジェクトの形式は同じで、 WAVEFORMATEX 型または WAVEFORMATEXTENSIBLE 型である必要があります。

StaticObjectTypeMask

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

MinDynamicObjectCount

同時実行動的オブジェクトの最小数。 この数の動的オーディオ オブジェクトを同時にアクティブ化できない場合、動的オーディオ オブジェクトはアクティブになりません。

MaxDynamicObjectCount

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

Category

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

EventHandle

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

NotifyObject

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

DistanceDecay

ストリームに関連付けられている ISpatialAudioObjectForHrtf オブジェクトに使用される減衰モデルの省略可能な既定値。 使用されていない場合は nullptr

Directivity

ストリームに関連付けられた ISpatialAudioObjectForHrtf オブジェクトに使用される空間オーディオ指向モデルの省略可能な既定値。 使用されていない場合は nullptr

Environment

ストリームに関連付けられている ISpatialAudioObjectForHrtf オブジェクトに対してオーディオが処理されるときにシミュレートされる環境の種類の省略可能な既定値。 使用されていない場合は nullptr

Orientation

ストリームに関連付けられている ISpatialAudioObjectForHrtf オブジェクトの向きの省略可能な既定値。 使用されていない場合は nullptr

Options

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

注釈

次の例では、ストリーム オプションを使用して HRTF の空間オーディオ レンダリング ストリームのアクティブ化を降格します。

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

要件

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