ISpatialAudioObject::SetPosition 方法 (spatialaudioclient.h)
设置在 3D 空间中相对于侦听器的位置,从中呈现 ISpatialAudioObject 音频数据。
语法
HRESULT SetPosition(
[in] float x,
[in] float y,
[in] float z
);
参数
[in] x
音频对象的 x 位置(以米为单位),相对于侦听器。 正值位于侦听器右侧,负值位于左侧。
[in] y
音频对象的 y 位置(以米为单位),相对于侦听器。 正值高于侦听器,负值低于侦听器。
[in] z
音频对象的 z 位置(以米为单位),相对于侦听器。 正值位于侦听器后面,负值位于前面。
返回值
如果该方法成功,则它会返回 S_OK。 如果失败,可能的返回代码包括但不限于下表中显示的值。
返回代码 | 说明 |
---|---|
|
在调用 SetPosition 之前,未调用 ISpatialAudioObjectRenderStreamBase::BeginUpdatingAudioObjects。 |
|
在以前的音频处理过程中,已显式或隐式调用 SetEndOfStream。 如果未在音频处理中调用 GetBuffer,则系统会隐式调用 SetEndOfStream,并在调用 ISpatialAudioObjects 和 ISpatialAudioObjects) 之间 (。 |
|
ISpatialAudioObject 的类型不是AudioObjectType_Dynamic。 使用 type 参数将音频对象的 类型 设置为 ISpatialAudioObjectRenderStreamBase::ActivateSpatialAudioObject 方法。 |
注解
只能在类型为 AudioObjectType_Dynamic 的 ISpatialAudioObject 上调用此方法。 使用 type 参数将音频对象的 类型 设置为 ISpatialAudioObjectRenderStreamBase::ActivateSpatialAudioObject 方法。
位置值使用右手笛卡尔坐标系,其中每个单位表示 1 米。 坐标系相对于侦听器,其中原点 (x=0.0,y=0.0,z=0.0) 表示侦听器耳朵之间的中心点。
如果从不调用 SetPosition ,则原点 (x=0.0,y=0.0,z=0.0) 用作默认位置。 调用 SetPosition 后,设置的位置将用于音频对象,直到通过另一次调用 SetPosition 更改位置。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | spatialaudioclient.h |