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 |
标头 | spatialaudiohrtf.h |