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 |
---|---|
|
呼叫 SetPosition 之前未呼叫 ISpatialAudioObjectRenderStreamBase::BeginUpdatingAudioObjects。 |
|
SetEndOfStream 在先前的音訊處理階段中明確或隱含地呼叫。 如果未在音頻處理內呼叫 GetBuffer,系統就會隱含呼叫 SetEndOfStream, (ISpatialAudioObjectRenderStreamBase::BeginUpdatingAudioObjects 和 ISpatialAudioObjectRenderStreamBase::EndUpdatingAudioObjects) 。 |
|
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 |