Cómo: agregar o quitar voces de un gráfico de audio dinámicamente
Puede cambiar los gráficos de audio en cualquier momento para agregar o quitar voces o subgráficos completos. En este tema se muestra cómo agregar o quitar voces de submezcla de un grafo que se ha creado siguiendo los pasos descritos en Creación de un grafo básico de procesamiento de audio. Una sola voz puede enviar su salida a varias voces o a una larga cadena de voces. Quitar o agregar una sola voz puede tener un gran efecto en un gráfico de audio.
Para cambiar dinámicamente un gráfico de audio
Agregar y quitar voces de un gráfico de audio es muy similar a agregar o quitar nodos de una sola lista o gráfico vinculado.
Para agregar una voz o un subgráfico a un gráfico de audio
Establezca la salida de una voz en el gráfico, la voz primaria, en la voz que se va a agregar mediante la función SetOutputVoices . Establezca la salida de la nueva voz en el elemento secundario original de la voz primaria.
XAUDIO2_SEND_DESCRIPTOR send = {0, pNewVoice}; XAUDIO2_VOICE_SENDS sendlist = {1, &send}; pParentVoice->SetOutputVoices(&sendlist); send.pOutputVoice = pChildVoice; pNewVoice->SetOutputVoices(&sendlist);
Para quitar una voz o un subgráfico de un gráfico de audio
Establezca la voz de salida del elemento primario de la voz que se va a quitar en el elemento secundario de la voz que se va a quitar. Si la voz que se quita está al final del gráfico, se debe cambiar la voz primaria para que apunte a la voz maestra.
XAUDIO2_SEND_DESCRIPTOR send = {0, pChildVoice}; XAUDIO2_VOICE_SENDS sendlist = {1, &send}; pParentVoice->SetOutputVoices(&sendlist);
Tenga en cuenta que, para mayor claridad, cada elemento primario solo tiene un elemento secundario en estos ejemplos. Si un nodo primario tiene varios elementos secundarios, su lista de envío contendrá una matriz de voces en lugar de un puntero a una sola voz.
Temas relacionados