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


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

Задает уровень громкости каждого канала окончательного вывода для голоса. Эти каналы сопоставляются с каналами ввода указанного целевого голоса.

Синтаксис

\\HRESULT SetOutputMatrix(
  [in] IXAudio2Voice *pDestinationVoice,
  [in] UINT32        SourceChannels,
  [in] UINT32        DestinationChannels,
  [in] const float   *pLevelMatrix,
  [in] UINT32        OperationSet
);

Параметры

[in] pDestinationVoice

Указатель на целевой объект IXAudio2Voice , для которого задаются уровни громкости.

Примечание Если голос отправляется в один целевой голос, при указании значения NULL setOutputMatrix будет работать с этим целевым голосом.
 

[in] SourceChannels

Подтверждает количество каналов вывода голоса. Это количество каналов, которые создаются последним эффектом в цепочке.

[in] DestinationChannels

Подтверждает количество входных каналов целевого голоса.

[in] pLevelMatrix

Массив уровней громкости [SourceChannels × DestinationChannels], отправленных в целевой голос. Уровень, отправляемый из исходного канала S в целевой канал D , указывается в форме pLevelMatrix[SourceChannels × D + S].

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

Выходные данные Левый вход [индекс массива] Правый вход [индекс массива]
Левый 1.0 [0] 0.0 [1]
Правый 0.0 [2] 1.0 [3]
Front Center 0.0 [4] 0.0 [5]
LFE 0.0 [6] 0.0 [7]
Задняя левая 0.8 [8] 0.0 [9]
Задняя правая 0.0 [10] 0.8 [11]
 
Примечание Левый и правый вход полностью сопоставляются с выходными левыми и правыми каналами; 80 процентов левого и правого входных данных сопоставляется с задним левым и правым каналами.
 
Дополнительные сведения об уровнях тома см. в разделе Примечания.

[in] OperationSet

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

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

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

Комментарии

Этот метод допустим только для исходных и субмикшных голосов, так как при освоении голоса записываются непосредственно на устройство без матричного смешивания.

Уровни объема выражаются в виде умножения амплитуды с плавающей запятой между -XAUDIO2_MAX_VOLUME_LEVEL и XAUDIO2_MAX_VOLUME_LEVEL (от -2²⁴ до 2²⁴) с максимальным увеличением 144,5 дБ. Уровень громкости 1,0 означает отсутствие затухания или усиления, а 0 означает тишину. Отрицательные уровни можно использовать для инвертации фазы звука. Дополнительные сведения об управлении громкости см. в разделе Управление громкости xAudio2 .

Функция X3DAudioX3DAudioCalculate может создавать матрицу вывода для использования с SetOutputMatrix на основе положения звука и положения прослушивателя.

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

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

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

Требования

   
Целевая платформа Windows
Header xaudio2.h

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

Практическое руководство. Изменение громкости голоса

IXAudio2Voice