Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете изменять звуковые графы в любое время, чтобы добавлять или удалять голоса или целые подграфы. В этом разделе показано, как добавить или удалить субмиксы из графа, созданного следуя шагам в 'Практическое руководство: создание базового графа обработки звука'. Один голос может отправлять выходные данные на несколько голосов или в длинную цепочку голосов. Удаление или добавление одного голоса может иметь большое влияние на звуковой граф.
Динамическое изменение звукового графа
Добавление и удаление голосов из звукового графа очень похоже на добавление или удаление узлов из одного связанного списка или графа.
Добавление голоса или подграфа в звуковой граф
Настройте выходные данные родительского голоса в графе на голос, который будет добавлен, используя функцию SetOutputVoices. Установите выходные данные нового голоса на исходную дочернюю версию родительского голоса.
XAUDIO2_SEND_DESCRIPTOR send = {0, pNewVoice}; XAUDIO2_VOICE_SENDS sendlist = {1, &send}; pParentVoice->SetOutputVoices(&sendlist); send.pOutputVoice = pChildVoice; pNewVoice->SetOutputVoices(&sendlist);
Удаление голоса или подграфа из звукового графа
Установите выходной голос родительского элемента на дочерний элемент удаляемого голоса. Если удаленный голос находится в конце графа, родительский голос должен быть изменен, чтобы указать на главный голос.
XAUDIO2_SEND_DESCRIPTOR send = {0, pChildVoice}; XAUDIO2_VOICE_SENDS sendlist = {1, &send}; pParentVoice->SetOutputVoices(&sendlist);
Обратите внимание, что для ясности в этих примерах у каждого родителя только один потомок. Если родительский узел имеет несколько дочерних элементов, его список отправки будет содержать массив голосов, а не указатель только на один голос.
Связанные разделы