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


Метод IXAudio2Voice::SetEffectParameters (xaudio2.h)

Задает параметры для заданного эффекта в цепочке эффектов голоса.

Синтаксис

\\HRESULT SetEffectParameters(
  [in] UINT32     EffectIndex,
  [in] const void *pParameters,
  [in] UINT32     ParametersByteSize,
  [in] UINT32     OperationSet
);

Параметры

[in] EffectIndex

Отсчитываемый от нуля индекс эффекта в цепочке эффектов голоса.

[in] pParameters

Возвращает текущие значения параметров, относящихся к эффекту.

[in] ParametersByteSize

Размер массива pParameters в байтах .

[in] OperationSet

Определяет этот вызов как часть отложенного пакета. Дополнительные сведения см. в обзоре наборов операций XAudio2 .

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

Возвращает S_OK в случае успешного выполнения; в противном случае — код ошибки. Описание кодов ошибок см. в разделе Коды ошибок XAudio2 .

Сбой с E_NOTIMPL, если эффект не поддерживает интерфейс управления универсальными параметрами.

Комментарии

Используемый эффект определяет допустимый размер и формат буфера pParameters . Вызов завершится ошибкой, если параметр pParameters недопустим или параметр ParametersByteSize не совсем тот размер, который ожидает эффект. Клиент должен позаботиться о том, чтобы направить вызов SetEffectParameters на правильный эффект. Если этот вызов направлен на другой эффект, который принимает один и тот же размер блока параметров, параметры будут интерпретироваться по-разному. Это может привести к непредвиденным результатам.

Память, на которую указывают pParameters , не должна быть освобождена немедленно, так как XAudio2 потребуется ссылаться на нее позже при фактическом применении параметров к эффекту. Это происходит во время следующего прохода обработки звука, если аргумент OperationSetXAUDIO2_COMMIT_NOW. В противном случае параметры применяются к эффекту позже, во время первого этапа обработки после вызова функции IXAudio2::CommitChanges с тем же аргументом OperationSet .

SetEffectParameters вступает в силу немедленно при вызове из обратного вызова XAudio2 с набором OperationSetXAUDIO2_COMMIT_NOW.

Примечание. IXAudio2Voice::GetEffectParameters всегда возвращает фактические текущие параметры эффекта. Однако они могут не соответствовать параметрам, заданным последним вызовом IXAudio2Voice::SetEffectParameters. Фактические параметры изменяются только при следующем запуске звукового модуля после вызова IXAudio2Voice::SetEffectParameters (или после соответствующего вызова IXAudio2::CommitChanges , если IXAudio2Voice::SetEffectParameters был вызван с отложенным идентификатором операции).
 

Требования к платформе

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); Пакет SDK для DirectX (XAudio 2.7)

Требования

Требование Значение
Целевая платформа Windows
Header xaudio2.h

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

Руководство: создание цепи эффектов

IXAPOParameters::SetParameters

IXAudio2Voice

Обзор протокола XAPO