共用方式為


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。 如果失敗,可能的傳回碼包括但不限於下表所示的值。

傳回碼 Description
SPTLAUDCLNT_E_OUT_OF_ORDER

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

SPTLAUDCLNT_E_RESOURCES_INVALIDATED

SetEndOfStream 在先前的音訊處理階段中明確或隱含地呼叫。 如果未在音頻處理內呼叫 GetBuffer,系統就會隱含呼叫 SetEndOfStream, (ISpatialAudioObjectRenderStreamBase::BeginUpdatingAudioObjectsISpatialAudioObjectRenderStreamBase::EndUpdatingAudioObjects) 。

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

備註

這個方法只能在類型為 AudioObjectType_DynamicISpatialAudioObject 上呼叫。 使用 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

另請參閱

ISpatialAudioObject