共用方式為


ISpatialAudioObjectForHrtf::SetPosition 方法 (spatialaudiohrtf.h)

設定 3D 空間中相對於接聽程式的位置,從中轉譯 ISpatialAudioObjectForHrtf 音訊數據。

語法

HRESULT SetPosition(
  [in] float x,
  [in] float y,
  [in] float z
);

參數

[in] x

音訊物件的 x 位置,以公尺為單位,相對於接聽程式。 正值位於接聽程式的右邊,而負值則位於左邊。

[in] y

音訊物件的 Y 位置,以公尺為單位,相對於接聽程式。 正值高於接聽程式,而負值則低於。

[in] z

音訊物件的 z 位置,以公尺為單位,相對於接聽程式。 正值位於接聽程式後方,負值位於前面。

傳回值

如果方法成功,它會傳回 S_OK。 如果失敗,可能的傳回碼包括,但不限於下表所示的值。

傳回碼 Description
SPTLAUDCLNT_E_OUT_OF_ORDER

呼叫 SetPosition 之前未呼叫 ISpatialAudioObjectRenderStreamBase::BeginUpdatingAudioObjects

SPTLAUDCLNT_E_RESOURCES_INVALIDATED

SetEndOfStream 在先前的音訊處理階段中明確或隱含地呼叫。 如果ISpatialAudioObjectRenderStreamBase::BeginUpdatingAudioObjectS 和 ISpatialAudioObjectRenderStreamBase::BeginUpdatingAudioObjectsISpatialAudioObjectRenderStreamBase::EndUpdatingAudioObject) s 之間的 (,則系統會隱含呼叫 SetEndOfStream

SPTLAUDCLNT_E_PROPERTY_NOT_SUPPORTED
ISpatialAudioObjectForHrtf 的類型不是 AudioObjectType_Dynamic。 使用 type 參數將音訊對象的類型設定為 ISpatialAudioObjectRenderStreamBase::ActivateSpatialAudioObjectForHrtf 方法。

備註

這個方法只能在類型為 AudioObjectType_DynamicISpatialAudioObjectForHrtf 上呼叫。 將 具有 type 參數的音訊對象類型設定為 ISpatialAudioObjectRenderStreamForHrtf::ActivateSpatialAudioObjectForHrtf 方法。

位置值會使用右手的笛卡兒座標系統,其中每個單位都代表 1 公尺。 坐標系統相對於 (x=0.0、y=0.0、z=0.0、z=0.0) 的接聽程式代表接聽程式接聽程序之間的中心點。

如果未呼叫 SetPosition ,則會使用原點 (x=0.0、y=0.0、z=0.0) 做為預設位置。 呼叫 SetPosition 之後,設定的位置將會用於音訊物件,直到位置變更為 SetPosition 的另一個呼叫為止。

規格需求

需求
目標平台 Windows
標頭 spatialaudiohrtf.h

另請參閱

ISpatialAudioObjectForHrtf