Поделиться через


Метод ISpatialAudioObject::SetPosition (spatialaudioclient.h)

Задает позицию в трехмерном пространстве относительно прослушивателя, из которого будут отображаться звуковые данные ISpatialAudioObject .

Синтаксис

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

Параметры

[in] x

Положение звукового объекта (в метрах) по отношению к прослушивателю по оси X. Положительные значения находятся справа от прослушивателя, а отрицательные — слева.

[in] y

Положение y звукового объекта в метрах относительно прослушивателя. Положительные значения выше прослушивателя, а отрицательные — ниже.

[in] z

Положение z звукового объекта в метрах относительно прослушивателя. Положительные значения находятся за прослушивателем, а отрицательные — впереди.

Возвращаемое значение

Если метод завершается успешно, возвращает значение S_OK. В случае сбоя возможные коды возврата включают, помимо прочего, значения, показанные в следующей таблице.

Код возврата Описание
SPTLAUDCLNT_E_OUT_OF_ORDER

ISpatialAudioObjectRenderStreamBase::BeginUpdatingAudioObjects не был вызван до вызова SetPosition.

SPTLAUDCLNT_E_RESOURCES_INVALIDATED

Метод SetEndOfStream был вызван явно или неявно в предыдущем проходе обработки звука. Метод SetEndOfStream вызывается системой неявно, если Метод GetBuffer не вызывается в пределах прохода обработки звука (между вызовами ISpatialAudioObjectRenderStreamBase::BeginUpdatingAudioObjects и ISpatialAudioObjectRenderStreamBase::EndUpdatingAudioObjects).

SPTLAUDCLNT_E_PROPERTY_NOT_SUPPORTED
ISpatialAudioObject не имеет типа AudioObjectType_Dynamic. Задайте тип звукового объекта с параметром type для метода ISpatialAudioObjectRenderStreamBase::ActivateSpatialAudioObject .

Комментарии

Этот метод можно вызывать только в ISpatialAudioObject типа AudioObjectType_Dynamic. Задайте тип звукового объекта с параметром 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
Header spatialaudioclient.h

См. также раздел

ISpatialAudioObject