Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Клиент XAudio2 имеет полный контроль над сопоставлением каналов голоса с каналами каждого из своих целевых голосов. Управление сопоставлением осуществляется с помощью метода IXAudio2Voice::SetOutputMatrix. Однако в некоторых случаях XAudio2 упрощает эту задачу, настраивая матрицу отправки по умолчанию автоматически. Это делается с помощью маски канала, если таковой есть, связанной с аудиоканалами голоса. Маска канала, это сочетание битовых масок SPEAKER_xxx, как определено в X3DAudio.h и других местах. XAudio2 требует, чтобы маски каналов были равны 0 или имеют то же количество битов, что и количество каналов.
В следующей таблице показаны требования к маске канала и значения по умолчанию для форматов, поддерживаемых XAudio2.
Формат | Требование маски канала | Маска по умолчанию | Соответствующий член структуры |
---|---|---|---|
ИКМ | Файл может содержать маску канала | Маска канала имеет значение 0 или отсутствует | WAVEFORMATEXTENSIBLE.dwChannelMask или отсутствует (WAVEFORMATEX) |
ADPCM | Файл не содержит маску канала | Маска канала по умолчанию всегда используется | Нет (ADPCMWAVEFORMAT) |
Для подмиксов и управления голосами, а также для исходных голосов без маски канала или маски канала 0, XAudio2 предполагает позиции динамиков по умолчанию в соответствии со следующей таблицей.
Каналы | Неявные позиции канала |
---|---|
1 | Всегда сопоставляется с FrontLeft и FrontRight на полной мощности в обоих динамиках (исключение для монофонических звуков) |
2 | FrontLeft, FrontRight (базовая стереосистемная конфигурация) |
3 | Передний левый, Передний правый, Низкая частота (конфигурация 2.1) |
4 | FrontLeft, FrontRight, BackLeft, BackRight (четырехфонический) |
5 | Передний левый, Передний правый, Передний центр, Боковой левый, Боковой правый (конфигурация 5.0) |
6 | FrontLeft, FrontRight, FrontCenter, LowFrequency, SideLeft, SideRight (конфигурация 5.1) (см. следующие замечания) |
7 | Передний левый, Передний правый, Центральный передний, Низкочастотный, Боковой левый, Боковой правый, Задний центральный (конфигурация 6.1) |
8 | Передний левый, Передний правый, Передний центральный, Низкочастотный, Задний левый, Задний правый, Боковой левый, Боковой правый (конфигурация 7.1) |
9 или более | Отсутствие неявных позиций (сопоставление "один к одному") |
Если заданная пара голосов в звуковом графе не имеет позиционирования динамиков, связанных ни с исходным, ни с целевым голосом (один голос имеет более восьми каналов), ни один из голосов не будет воспроизводиться до тех пор, пока для исходного голоса явно не установлена матрица отправки с помощью метода IXAudio2Voice::SetOutputMatrix. Вызов метода IXAudio2SourceVoice::Start для любого голоса завершится ошибкой, пока вы не выполните это.
Если исходный голос и целевой голос имеют разное количество позиций динамиков и IXAudio2Voice::SetOutputMatrix не было вызвано для исходного голоса, XAudio2 отправляет каждый исходный канал в ближайший целевой динамик (или динамики), пропорционально тому, насколько они близки к предполагаемому динамику. Существует два особых случая, когда поведение по умолчанию отличается.
- Если исходный звук является моно и находится в SPEAKER_FRONT_CENTER или не имеет определенной позиции, он всегда отправляется в SPEAKER_FRONT_LEFT и SPEAKER_FRONT_RIGHT, если они существуют в выходном звуке. Если они не существуют, он возвращается к стандартной ситуации.
- Если исходный и целевой канал находятся как на 6-канале, так и находятся в стандартной конфигурации динамиков 5.1 (левая+правый+центр+sub+BackL+BackR или left+Right+Center+Sub+SideL+SideR), каналы сопоставляются с одним с одним. Другими словами, SideLeft/Right и BackLeft/Right обрабатываются эквивалентно. Это связано с тем, что в этих настройках возникла историческая путаница. Таким образом, предполагаемая цель всегда заключается в сопоставлении одного с одним.
Связанные разделы
-
Руководство по программированию XAudio2