Метод 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 , для которого задаются уровни громкости.
[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] |
[in] OperationSet
Определяет этот вызов как часть отложенного пакета. Дополнительные сведения см. в обзоре наборов операций XAudio2 .
Возвращаемое значение
Возвращает S_OK в случае успешного выполнения, в противном случае — код ошибки. Описание кодов ошибок см. в разделе Коды ошибок XAudio2 .
Комментарии
Этот метод допустим только для исходных и субмикшных голосов, так как при освоении голоса записываются непосредственно на устройство без матричного смешивания.
Уровни объема выражаются в виде умножения амплитуды с плавающей запятой между -XAUDIO2_MAX_VOLUME_LEVEL и XAUDIO2_MAX_VOLUME_LEVEL (от -2²⁴ до 2²⁴) с максимальным увеличением 144,5 дБ. Уровень громкости 1,0 означает отсутствие затухания или усиления, а 0 означает тишину. Отрицательные уровни можно использовать для инвертации фазы звука. Дополнительные сведения об управлении громкости см. в разделе Управление громкости xAudio2 .
Функция X3DAudioX3DAudioCalculate может создавать матрицу вывода для использования с SetOutputMatrix на основе положения звука и положения прослушивателя.
Требования к платформе
Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); Пакет SDK для DirectX (XAudio 2.7)Требования
Целевая платформа | Windows |
Header | xaudio2.h |